我正在尝试使用CASE语句执行SELECT,并且我收到的错误没有意义.我的声明似乎遵循任何SQL语法规则,但我得到了好的"多部分标识符to_do.[item_id] AND to_do.[item]无法绑定.这没有意义,因为列名称是正确的关于表格列.
这是SQL:
SELECT to_do.[item_id],
to_do.[item] = CASE to_do.encounter_id WHEN 0 THEN CONVERT(NVARCHAR, e.[date], 101 ) + ' - ' + p.[first_name] + ' ' + p.[last_name] + ' - ' + to_do.[item] AS to_do.[item] ELSE to_do.[item] END,
to_do.[complete],
to_do.[encounter_id],
e.[date],
p.[last_name] + ', ' + p.[first_name] AS [p_name]
FROM [dbo].[to_do] LEFT OUTER JOIN
[dbo].[encounter] e ON
to_do.[encounter_id] = e.[encounter_id] LEFT OUTER JOIN
[dbo].[patients] p ON
e.[mrn] = p.[mrn]
WHERE to_do.[user_id] = @user_id
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么想法?根据之前的经验,我应该可以像这样使用CASE,但也许我只是盯着它看太久而且看不到明显的.谢谢!
在AS {alias}需要后走END.我改写如下:
SELECT to_do.[item_id],
CASE to_do.encounter_id WHEN 0 THEN CONVERT(NVARCHAR, e.[date], 101 ) + ' - ' + p.[first_name] + ' ' + p.[last_name] + ' - ' + to_do.[item] ELSE to_do.[item] END AS [item] ,
...
Run Code Online (Sandbox Code Playgroud)