case的执行顺序 嵌套使用
生活随笔
收集整理的這篇文章主要介紹了
case的执行顺序 嵌套使用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們先來(lái)看一下表中數(shù)據(jù)的情況:
select * from PRODUCTINFO?
PRODUCTID PRODUCTNAME PRODUCTPRICE QUANTITY CATEGORY DESPERATION ORIGIN PID0001 T恤 25.62 100 衣服 促銷產(chǎn)品 北京 PID0002 炒鍋 35.62 100 廚具 促銷產(chǎn)品 北京 PID0003 西瓜 45.62 100 水果 促銷產(chǎn)品 北京 PID0004 鱸魚 55.62 100 魚類 商品描述004 北京 PID0004 鯽魚 75.62 100 魚類 商品描述005 北京 PID0004 草魚 65.62 100 魚類 商品描述006 北京需求:
把非魚類的產(chǎn)品都標(biāo)記為99,鱸魚標(biāo)記為2,非鱸魚的魚類標(biāo)記為50.
步驟:
第一步:利用嵌套case 語(yǔ)句將非魚類標(biāo)記為99
(case when category = '魚類' then 1 else 0 end) = 0 then '99'第二步:在魚類中,名稱為‘鱸魚’的標(biāo)記為2
第三步:排除第一第二步之后,剩余的標(biāo)記為100,也就是非鱸魚的魚類標(biāo)記為100.
整體的SQL語(yǔ)句如下:
select PRODUCTNAME,CATEGORY,casewhen (case when category = '魚類' then 1 else 0 end) = 0 then '99'when productname = '鱸魚' then '2'else '100'end category_codefrom PRODUCTINFO執(zhí)行結(jié)果如下:
PRODUCTNAME CATEGORY CATEGORY_CODE T恤 衣服 99 炒鍋 廚具 99 西瓜 水果 99 鱸魚 魚類 2 鯽魚 魚類 100 草魚 魚類 100執(zhí)行順序說(shuō)明:
從第一個(gè)when條件開始向下執(zhí)行,如果條件滿足了,則不會(huì)執(zhí)行下面的when條件了。
舉個(gè)栗子:
?
select PRODUCTNAME,CATEGORY,casewhen (case when category = '魚類' then 1 else 0 end) = 0 then '99'when productname = '鱸魚' then '2'when productname = '西瓜' then '52'else '100'end category_codefrom PRODUCTINFO?
你們說(shuō)西瓜最終的category_code會(huì)是什么捏?會(huì)是代碼中的‘52’嗎?
答案是否定的啦,西瓜在第一個(gè)when條件語(yǔ)句中,已經(jīng)被給予了‘99’,就結(jié)束了,不會(huì)在執(zhí)行下面的when條件了。 我們看看結(jié)果:
PRODUCTNAME CATEGORY CATEGORY_CODE T恤 衣服 99 炒鍋 廚具 99 西瓜 水果 99 鱸魚 魚類 2 鯽魚 魚類 100 草魚 魚類 100西瓜還是‘99’啦
?
以上
?
轉(zhuǎn)載于:https://www.cnblogs.com/lyy-totoro/p/6016920.html
總結(jié)
以上是生活随笔為你收集整理的case的执行顺序 嵌套使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 美格智能和华为合作项目 主要在通信模组领
- 下一篇: 【freemaker】之include,