繁体   English   中英

使用CASE在SQL中选择一个字段?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM