[英]How to use CASE statement in SQL Server
我正在嘗試使用SQL Server中的CASE
語句來解決我遇到的問題。
這是我的示例數據:
FY COUNTRY LAT LON CHECK ID
------------------------------------------------------------
2013 MEX 35.85311 -118.1385 Y 80845
2013 USA 35.85311 -118.1385 Y 80845
這是我在SQL Server中的CASE
語句
SELECT
FY,
LAT, LON,
CASE
WHEN COUNTRY = 'MEX'
THEN 'Y'
END AS MEX,
CASE
WHEN COUNTRY = 'USA'
THEN 'Y'
END AS USA,
ID
FROM
TEMP
我的結果:
FY LAT LON MEX USA ID
---------------------------------------------------
2013 35.85311 -118.1385 Y (null) 80845
2013 35.85311 -118.1385(null) Y 80845
有沒有一種方法可以將我的結果轉換為:
FY LAT LON MEX USA ID
--------------------------------------------------------
2013 35.85311 -118.1385 Y Y 80845
使用group by
和max
:
select
fy, lat, lon,
max(case when country = 'MEX' then 'Y' end) as mex,
max(case when country = 'USA' then 'Y' end) as usa,
id
from temp
group by
fy, lat, lon, id;
或正在使用PIVOT
:
select fy, lat, lon, id, mex, usa
from temp t
pivot ( max(check) for country in ([mex],[usa]) ) p;
這也稱為PIVOT語句
SELECT FY, LAT, LON, ID, MEX, USA
FROM TEMP t
PIVOT (
MAX([CHECK])
FOR [COUNTRY] IN([MEX],[USA])
) p
帶Syntex的CASE語句和示例
Syntex CASE表達
WHEN value_1 THEN result_1
WHEN value_2 THEN result_2
...
WHEN value_n THEN result_n
ELSE result
END
要么
CASE
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
...
WHEN condition_n THEN result_n
ELSE result
END
例
SELECT contact_id,
CASE website_id
WHEN 1 THEN 'TechOnTheNet.com'
WHEN 2 THEN 'CheckYourMath.com'
ELSE 'BigActivities.com'
END
FROM contacts;
或者您也可以使用CASE語句編寫SQL語句,例如CASE
WHEN website_id = 1 THEN 'TechOnTheNet.com'
WHEN website_id = 2 THEN 'CheckYourMath.com'
ELSE 'BigActivities.com'
END
來自聯系人;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.