根据数据库中的一个字段是否等于某个字段,我想选择另一个字段的值。我以为我可以使用CASE THEN
,但我不能让它返回字段的值。
这是我到目前为止所尝试的内容:
SELECT LastName, CASE FirstName WHEN 'Ian' THEN JobNo END FROM Employees
JobNo
是我想从中获取值的字段的名称。
答案 0 :(得分:13)
你错过了你的案例陈述中的else语句,一旦它在那里它应该起作用
像这样:SELECT LastName,
CASE FirstName WHEN 'Ian' THEN JobNo ELSE -1 END
FROM Employees
答案 1 :(得分:2)
试试这个
SELECT LastName, CASE WHEN FirstName ='Ian' THEN JobNo else null END
FROM Employees
答案 2 :(得分:2)
您需要定义ELSE:
SELECT LastName, CASE FirstName WHEN 'Ian' THEN JobNo ELSE FirstName END
FROM Employees
我已经默认返回FirstName,如果您不希望只替换其他内容。只要确保数据类型是等效的,以避免潜在的问题(我假设JobNo是一个varchar引用代码,用于演示语法)。
答案 3 :(得分:1)
添加ELSE条件不会有害,但您可能还需要新列的列名称,如下所示:
SELECT LastName,
CASE FirstName
WHEN 'Ian' THEN JobNo
ELSE 0
END IansJobNo
FROM Employees
答案 4 :(得分:0)
这是:
SELECT LastName,
JobNo = CASE
WHEN FirstName = 'Ian' THEN JobNo END
FROM Employees
答案 5 :(得分:0)
sql语法对我来说似乎是对的。我自己尝试过,工作正常。可能是你错过了别的东西。以下是我得到的示例输出,
答案 6 :(得分:-1)
CASE @Temp WHEN 1那么ISnull(tbl1.t1,0)当2那么ISnull(tbl1.t2,0)结束为值