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