我有三个字段,如果第三列等于某个值,我想得到第2列的值。我可以在SELECT
中执行此操作,并使用IF
或{ {1}}陈述?
答案 0 :(得分:3)
CASE
语句是最简单的方法。以下SQL比较两列。您可以将其更改为使用WHEN Col2 = 'xxxx' THEN xxxx'
。
SELECT Col1, Col2, CASE
WHEN Col2 = Col1 THEN 'True'
ELSE 'False'
END AS 'Columns Match'
FROM Table
答案 1 :(得分:1)
希望这能引导你朝着正确的方向前进
Select
Case
when columnthree = 'VALUE'
then column2
else 'do something'
end as [column name]
from
table name
如果两列的数据类型不同,您可能还想进行一些转换
答案 2 :(得分:0)
您可以在CASE
语句中使用SELECT
子句 - IF
在SQLServer中不会以这种方式工作。
答案 3 :(得分:0)
select Alpha, Beta, Gamma,
case
when Alpha > 2 * Beta then Gamma
when Beta = Gamma then Alpha + 3
when Gamma = 2 then 13
else 42
end as 'Omega'
from Alphabet
第一场比赛获胜。
CASE返回一个值,因此在各种情况下可能会有所帮助:
delete ... where case when Id > Limit then 1 else 0 end = 1
update ... set ShoeSize = case when Wide = 1 then ShoeSize + 1 else ShoeSize end, ...