[英]How to use case statement properly? How to use case statement with where or join table?
我試圖用名稱1替換所有password1 = 1的顯示值,並用名稱2替換password2 = 1的顯示值,而不更改數據庫中的實際值。 但是當我執行代碼時,系統返回:
“消息4145,級別15,狀態1,第22行在'Order'附近,在期望有條件的上下文中指定的非布爾類型的表達式。”
輸出我有:
名稱1,名稱2,GateCode,密碼1,密碼2,狀態
賴恩(Ryan),麗莎(Lisa),1,3214,4564,FL
我想要的輸出
名稱1,名稱2,GateCode,密碼1,密碼2,狀態
賴恩(Ryan),麗莎(Lisa),1,3214,4564,FL
這是我的代碼:
Select Top 10
g.name1 as 'name1'
, g.name1 as 'name2'
, c.gateCode as GateCode
, c.pas1 as 'password1'
, c.pas2 as 'password2'
, g.state as 'state'
from guest g
Left code c
on g.guest_cdoe = c.guest_code
Where
CASE
WHEN password1 = 1 and g.guest_cdoe = c.guest_code
Then ba.bank_name1
WHEN password2 = 2 and g.guest_cdoe = c.guest_code
Then ba.bank_name1
End
Order by 3
我想這就是您想要的...很難說,但應該為您指明正確的方向。 您希望選擇語句中的大小寫不是where語句。
Select Top 10
g.name1 as 'name1'
, g.name2 as 'name2'
, c.gateCode as GateCode
, CASE
WHEN c.pas1 = 1 and g.guest_cdoe = c.guest_code
THEN g.name1
ELSE c.pas1
END
, CASE
WHEN c.pas2 = 1 and g.guest_cdoe = c.guest_code
THEN g.name2
ELSE c.pas2
END
, g.state as 'state'
from guest g
Left code c
on g.guest_cdoe = c.guest_code
Order by 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.