Case:根據一個條件的狀態實現邏輯的分支,可用於查詢語句中
1:簡單case語句用於根據一個字面值進入某個邏輯
2:搜索型case語句用於根據一個表達式的值進入某個邏輯
簡單case語句
Case 字段
When 表達式B/值 then 結果B
When 表達式C/值 then 結果C
Else 結果D
End
說明:計算表達式A的值,與每一個when後面的表達式的值比較,若相等,則返回對應的結果,否則返回else的結果。
表達式A與when後表達式的數據類型必須相同,或者可隱形轉換
搜索型case語句
Case
When 布爾表達式A then 結果A
When 布爾表達式B then 結果B
Else 結果C
End
SELECT
THIRDSYSTIME AS 交易時間,AMOUNT AS 交易金額,AUTHORCODE AS 交易碼, FEE AS 手續費,SYSSERNO AS 系統跟蹤號
SELECT (CASE
WHEN THIRDSYSTIME=20180511 THEN '昨天'
WHEN THIRDSYSTIME=20180512 THEN '今天'
ELSE '未知時間'
END) 交易時間,
AMOUNT AS 交易金額,AUTHORCODE AS 交易碼, FEE AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO;
SELECT (CASE THIRDSYSTIME
WHEN 20180511 THEN '昨天'
WHEN 20180512 THEN '今天'
ELSE '未知時間'
END) 交易時間,
AMOUNT AS 交易金額,AUTHORCODE AS 交易碼, FEE AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO;
SELECT (CASE
WHEN THIRDSYSTIME=20180511 THEN '昨天'
WHEN THIRDSYSTIME=20180512 THEN '今天'
END) 交易時間,
AMOUNT AS 交易金額,AUTHORCODE AS 交易碼, FEE AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO;
SELECT (CASE THIRDSYSTIME
WHEN 20180511 THEN '昨天'
WHEN 20180512 THEN '今天'
END) 交易時間,
AMOUNT AS 交易金額,AUTHORCODE AS 交易碼, FEE AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO;
If語句語法:
If(條件表達式)
Then [語句塊或者sql]
Else [語句塊或者sql]
End if
CREATE PROCEDURE `pro1`(out v_result VARCHAR(10))
BEGIN
if ((select count(THIRDSYSTIME) from T_CPS_CUPSICACINFO where THIRDSYSTIME='20180511')<=5)
then set v_result='昨天交易筆數小於5';
else set v_result='昨天交易筆數大於5';
end if;
end