【发布时间】:2021-02-23 15:07:48
【问题描述】:
如何在 SQL Server Select 语句中使用创建的变量并在之后对其进行操作?出于示例的目的,我想从列 No_Grade 创建一个二进制列。
SELECT r.[ID], r.[Grade1], r.[Grade2], r.[Grade3], r.[Grade4],
(case when (r.[Grade1] = r.[Grade2]) then r.[Rod1Grade]
else '' END) as No_Grade,
(case when No_Grade is null then 1 else 0 END) as Yes_Grade
FROM [DB].[TABLE] as r
第二个case statement 出现错误Incorrect syntax near 'case'.。
【问题讨论】:
-
您的查询没有意义——尽管我没有发现那个特定的错误。
No_grade不能是NULL,那你为什么要检查那个条件呢? (无论如何,检查都不起作用,但逻辑已关闭。) -
仅供参考,您不需要将每个表达式都放在括号中。
CASE WHEN A = B THEN 1 ELSE 0 END也完全有效。还要注意CASE是一个表达式; SQL Server 不支持Case(Switch) 语句。 -
至于错误,我不希望你有这个错误,但没有找到
No_Grade列。您不能在同一SELECT中通过它的别名来引用一列。
标签: sql sql-server select