昨天有說今天要來一起研究IIF。
工作上我常用來"區分資料",
像是:通過vs不通過、比較大vs比較小等等。
在訂單細節[Purchasing].[PurchaseOrderDetail]這張表,
我們可以看到金額的欄位:
而金額最高與最低的查詢語法及結果:
SELECT MAX(UnitPrice) 金額最高
,MIN(UnitPrice) 金額最低
FROM [Purchasing].[PurchaseOrderDetail]
來double check一下,
確認沒有價格高於我們查到的最高金額:
SELECT *
FROM [Purchasing].[PurchaseOrderDetail]
where UnitPrice>82.8345
再來我要整理一份資料,
是確認某個消費級距下有多少筆消費資料,
(例:有幾筆消費是一元一下的,幾筆是一元到十元的)
就要用到我們的主角IIF啦~
--IIF公式
IIF(條件是什麼,為真...,為非則...)
--像是
IIF(UnitPrice大於一元,算一次,算零次)
--再使用SUM總計
SUM(IIF(UnitPrice<=1,1,0))一元以下
複製貼上幾次,
再更改想要的級距範圍,
就變成了:
SELECT SUM(IIF(UnitPrice<=1,1,0))一元以下
,SUM(IIF(UnitPrice>1 AND UnitPrice<=10,1,0))十元以下
,SUM(IIF(UnitPrice>10 AND UnitPrice<=20,1,0))二十元以下
,SUM(IIF(UnitPrice>20 AND UnitPrice<=30,1,0))三十元以下
,SUM(IIF(UnitPrice>30 AND UnitPrice<=50,1,0))五十元以下
,SUM(IIF(UnitPrice>50 AND UnitPrice<=100,1,0))一百元以下
,SUM(IIF(UnitPrice>100 AND UnitPrice<=200,1,0))兩百元以下
FROM [Purchasing].[PurchaseOrderDetail]
是不是有點太簡單了呢?
明天我們再來點困難的吧~