SOGO論壇

標題: [問題討論] SQL case then 使用,哪錯了? [列印本頁]

作者: 朱朱愛你    時間: 2016-1-11 22:00:11     標題: [問題討論] SQL case then 使用,哪錯了?

select 會員代號,姓名,累計消費金額,case (累計消費金額)as 等級
    when (累計消費金額 < 10000) then 'C '
    when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
    when (累計消費金額 > = '20000') then 'A'
    end  
from dbo.會員  
作者: openjacket    時間: 2016-2-12 14:39:51

改成這樣修改debug看看 , 沒實際run過 不知道 哪邊還要修 ; 共勉之 :)



select 會員代號,姓名,累計消費金額 from dbo.會員  
where
case (累計消費金額)as 等級
    when (累計消費金額 < 10000) then 'C '
    when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
    when (累計消費金額 > = '20000') then 'A'
end  
作者: ehh    時間: 2016-2-12 21:39:47

是ACCESS的SQL
還是純SQL語法?
題目應該是     累計消費金額未滿1000 =C級      累計消費金額大於1000 且未滿2000  =B級        累計消費金額大於2000 =A級
在實作上除了利用CASE WHEN 外  還需要用GROUP BY 把 累計消費金額 加總  但感覺這只是要練習CASE WHEN語法而已
所以 純SQL
應該是
照原PO邏輯修改
select 會員代號,姓名,累計消費金額,
    case when (累計消費金額 < '10000') then 'C '
    when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
    when (累計消費金額 > = '20000') then 'A'
    end  as 等級

from dbo.會員

利用 ELSE  少打些字
select 會員代號,姓名,累計消費金額,
    case when (累計消費金額 > = '20000') then 'A'
   
when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
     
else  'C '    end     as 等級
from dbo.會員






歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM