[英]Using CASE to select a field in SQL?
根据数据库中的一个字段是否等于某个字段,我想选择另一个字段的值。 我当时认为我可以使用CASE THEN
但是我不能让它返回字段的值。
这是我到目前为止所尝试的:
SELECT LastName, CASE FirstName WHEN 'Ian' THEN JobNo END FROM Employees
JobNo
是我想从中获取值的字段的名称。
你错过了case语句中的else语句,一旦它在那里它应该工作
像这样:
SELECT LastName,
CASE FirstName WHEN 'Ian' THEN JobNo ELSE -1 END
FROM Employees
试试这个
SELECT LastName, CASE WHEN FirstName ='Ian' THEN JobNo else null END
FROM Employees
您需要定义ELSE:
SELECT LastName, CASE FirstName WHEN 'Ian' THEN JobNo ELSE FirstName END
FROM Employees
我已经默认返回FirstName,如果你不想那只是替换其他东西。 只要确保数据类型是等效的,以避免潜在的问题(我假设JobNo是一个varchar引用代码,用于演示语法)。
添加ELSE条件不会有害,但您可能还需要新列的列名称 - 如下所示:
SELECT LastName,
CASE FirstName
WHEN 'Ian' THEN JobNo
ELSE 0
END IansJobNo
FROM Employees
这里是:
SELECT LastName,
JobNo = CASE
WHEN FirstName = 'Ian' THEN JobNo END
FROM Employees
sql语法对我来说似乎是正确的。 我自己尝试过,工作正常。 可能是你错过了别的东西。 以下是我得到的示例输出,
CASE @Temp WHEN 1那么ISnull(tbl1.t1,0)当2那么ISnull(tbl1.t2,0)结束为值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.