DB2 CASE/IF 條件控制語句

DB2 CASE/IF 條件控制語句
 
 
╭──╮╭──╮╭──╮╭──╮
│╭─╯│╭╮││╭─╯│╭─╯
││  │╰╯││╰─╮│╰─╮
││  │╭╮│╰─╮││╭─╯
│╰─╮││││╭─╯││╰─╮
╰──╯╰╯╰╯╰──╯╰──╯
   
1、CASE(可用於基本SQL和過程當中)

一、刪除表、建立表、註釋、插入數據操做。
DROP TABLE  AA_WEEK;
CREATE TABLE AA_WEEK(
CODE SMALLINT NOT NULL,
EN_NAME VARCHAR(20) NOT NULL,
ABB VARCHAR(20),
CONSTRAINT P_AA_WEEK_CODE PRIMARY KEY (CODE)
);
COMMENT ON TABLE AA_WEEK IS
'星期';
COMMENT ON AA_WEEK
 (CODE IS '星期代碼',
  EN_NAME IS '英文星期名',
  ABB IS '英文縮寫'
 );
INSERT INTO AA_WEEK VALUES
(1,'Monday','Mon'),
(2,'Tuesday','Tues'),
(3,'Wednesday','Wed'),
(4,'Thursday','Thurs'),
(5,'Friday','Friday'),
(6,'Saturday','Sat'),
(7,'Sunday','Sun');
COMMIT;
 
二、CASE查詢
兩種語法模式:
(1):CASE
        WHEN 條件  THEN 結果1
        ELSE            結果2
      END
(2):CASE 表達式1
        WHEN 表達式2   THEN 結果1
        ELSE            結果2
   END
 
-- 單值表達式做爲條件
SELECT
  CASE CODE
   WHEN 1 THEN '一'
   WHEN 2 THEN '二'
   WHEN 3 THEN '三'
   WHEN 4 THEN '四'
   WHEN 5 THEN '五'
   WHEN 6 THEN '六'
   WHEN 7 THEN '七'
  ELSE 'CODE錯誤!'
  END AS CN_CODE,
 EN_NAME
FROM AA_WEEK;
 
CN_CODE EN_NAME
--------------------
'一' 'Monday'
'二' 'Tuesday'
'三' 'Wednesday'
'四' 'Thursday'
'五' 'Friday'
'六' 'Saturday'
'七' 'Sunday'
'CODE錯誤!' 'HAHA'

-- 條件直接寫到when後面
SELECT
  CASE
   WHEN CODE = 1 THEN '一'
   WHEN CODE = 2 THEN '二'
   WHEN CODE = 3 THEN '三'
   WHEN CODE = 4 THEN '四'
   WHEN CODE = 5 THEN '五'
   WHEN CODE = 6 THEN '六'
   WHEN CODE = 7 THEN '七'
  ELSE 'CODE錯誤!'
  END AS CN_CODE,
 EN_NAME
FROM AA_WEEK;
 
CN_CODE EN_NAME
--------------------
'一' 'Monday'
'二' 'Tuesday'
'三' 'Wednesday'
'四' 'Thursday'
'五' 'Friday'
'六' 'Saturday'
'七' 'Sunday'
'CODE錯誤!' 'HAHA'

╭──╮╭──╮
╰╮╭╯│╭─╯
 ││ │╰─╮
 ││ │╭─╯
╭╯╰╮││  
╰──╯╰╯  
 
2、IF語句格式(僅僅限於DB2過程、觸發器、函數中使用)
IF (條件)
  THEN 語句;
ELSEIF (條件)
  THEN 語句;
ELSEIF (條件)
  THEN 語句;
... ...
ELSE
  語句;
END IF;
 
例子之後用的時候再寫上。
相關文章
相關標籤/搜索