Oracle case when用法

CASE表達(dá)式可以在SQL中實(shí)現(xiàn)if-then-else型的邏輯,而不必使用PL/SQL。CASE的工作方式與DECODE()類似,但應(yīng)該使用CASE,因?yàn)樗cANSI兼容。 注意點(diǎn): 1、以CASE開頭,以END結(jié)尾 2、分支中WHEN后跟條件,THEN為顯示結(jié)果 3、ELSE為除此之外的默認(rèn)情況,類似于高級(jí)

CASE表達(dá)式可以在SQL中實(shí)現(xiàn)if-then-else型的邏輯,而不必使用PL/SQL。CASE的工作方式與DECODE()類似,但應(yīng)該使用CASE,因?yàn)樗cANSI兼容。
注意點(diǎn):

  1、以CASE開頭,以END結(jié)尾

  2、分支中WHEN后跟條件,THEN為顯示結(jié)果

  3、ELSE為除此之外的默認(rèn)情況,類似于高級(jí)語言程序中switch case的default,可以不加

  4、END后跟別名

  CASE有兩種表達(dá)式:

  1.簡單CASE表達(dá)式,使用表達(dá)式確定返回值.

  語法:

  CASE search_expression

  WHEN expression1 THEN result1

  WHEN expression2 THEN result2

  …

  WHEN expressionN THEN resultN

  ELSE default_result

  END

  例:

  select product_id,product_type_id,

  case product_type_id

  when 1 then ‘Book’

  when 2 then ‘Video’

  when 3 then ‘DVD’

  when 4 then ‘CD’

  else ‘Magazine’

  end

  from products

  結(jié)果:

  PRODUCT_ID PRODUCT_TYPE_ID CASEPROD

  ———- ————— ——–

  1?????????????? 1???????????????????????????? Book

  2?????????????? 1???????????????????????????? Book

  3?????????????? 2????????????????????????????? Video

  4?????????????? 2???????????????????????????? Video

  5?????????????? 2???????????????????????????? Video

  6?????????????? 2??????????????????????????? Video

  7?????????????? 3???????????????????????????? DVD

  8?????????????? 3???????????????????????????? DVD

  9?????????????? 4????????????????????????????? CD

  10?????????????? 4?????????????????????????????? CD

  11?????????????? 4???????????????????????????? CD

  12??????????????????????????????????????????? Magazine

  12 rows selected.

  2.搜索CASE表達(dá)式,使用條件確定返回值.

  語法:

  CASE

  WHEN condition1 THEN result1

  WHEN condistion2 THEN result2

  …

  WHEN condistionN THEN resultN

  ELSE default_result

  END

  例:

  select product_id,product_type_id,

  case

  when product_type_id=1 then ‘Book’

  when product_type_id=2 then ‘Video’

  when product_type_id=3 then ‘DVD’

  when product_type_id=4 then ‘CD’

  else ‘Magazine’

  end

  from products

  結(jié)果與上相同.

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享