簡體   English   中英

如何在SQL Server中使用CASE語句

[英]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 bymax

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM