MySQL 的CASE WHEN 語句使用說明

衣舞晨風發表於2016-12-07

case when語句,用於計算條件列表並返回多個可能結果表示式之一。
CASE 具有兩種格式
一、簡單 CASE 函式將某個表示式與一組簡單表示式進行比較以確定結果。

語法
簡單 CASE 函式:

CASE input_expression
    WHEN when_expression THEN result_expression
        [ ...n ]
    [
        ELSE else_result_expression
    END 

返回結果中, value=compare-value
例子:

SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END

輸出:’one’

SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;

輸出: ‘true’

二、使用帶有簡單 CASE 函式和 CASE 搜尋函式的SELECT 語句
CASE 搜尋函式計算一組布林表示式以確定結果。
語法:

CASE    
WHEN Boolean_expression THEN result_expression
        [ ...n ]
    [ 
        ELSE else_result_expression
    END

例子:

WHEN IFNULL(tableA.name, '') != '' THEN
    (
        SELECT
            lang.NAME
        FROM
             commonitem_lang lang
        WHERE
            '123456789' = lang.ID
        AND lang.KEY = 'K6'
    )
WHEN IFNULL(tableA.name, '') = '' THEN
    (
        SELECT
            lang.NAME
        FROM
             commonitem_lang lang
        WHERE
            '987654321' = lang.ID
        AND lang.KEY = 'K7'
    )
END AS PWNAME

注意第二種情況CASE後面直接是When,即需要判斷的條件。

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章