CTE与CASE声明

时间:2014-08-14 06:38:34

标签: sql-server-2008-r2

我正在尝试这样的查询;

WITH CTE AS
(
    SELECT 
       ID, NAME, DEPT,
       CASE WHEN Fixed = 1 THEN 'Yes' ELSE '' END,   
       CASE WHEN NotFixed = 1 THEN 'Yes' ELSE '' END,
)

当我尝试执行此查询时,我收到类似

的错误
  

没有为CTE第4列指定列

查询有什么问题?

1 个答案:

答案 0 :(得分:0)

阅读错误消息:您忘记为计算列命名。这适用于第4列和第5列。因此,请将查询更改为以下内容:

WITH CTE AS
(
    SELECT 
       ID, NAME, DEPT,
       CASE WHEN Fixed = 1 THEN 'Yes' ELSE '' END AS [Expr1],   
       CASE WHEN NotFixed = 1 THEN 'Yes' ELSE '' END AS [Expr2],
    . . .
)

随意将[Expr1]和[Expr2]更改为更有意义的内容......