SOGO論壇
  登入   註冊   找回密碼
查看: 753|回覆: 2
列印 上一主題 下一主題

[其他工具] [問題討論] SQL case then 使用,哪錯了? [複製連結]

Rank: 1

狀態︰ 離線
跳轉到指定樓層
1
發表於 2016-1-11 22:00:11 |只看該作者 |倒序瀏覽
select 會員代號,姓名,累計消費金額,case (累計消費金額)as 等級
    when (累計消費金額 < 10000) then 'C '
    when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
    when (累計消費金額 > = '20000') then 'A'
    end  
from dbo.會員  
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 4

狀態︰ 離線
2
發表於 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  

Rank: 3Rank: 3

狀態︰ 離線
3
發表於 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.會員

請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-5-17 21:05

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部