Sql server 生成按虚拟/构造列中的值排序的行号
我试图在构造的列中生成按值排序的行号,但是我不断得到一个错误: 列名“Type”无效Sql server 生成按虚拟/构造列中的值排序的行号,sql-server,Sql Server,我试图在构造的列中生成按值排序的行号,但是我不断得到一个错误: 列名“Type”无效 SELECT ROW_NUMBER() OVER (ORDER BY [Type] ASC) As [RowID], [ID], case when ([CaseOne] = 1) then 1 else case when ([Label] IS NOT NULL) then 2 else 3 end end AS [Type] FROM [Table1] 使用2008 R2。您需要将您的案例陈述
SELECT ROW_NUMBER() OVER (ORDER BY [Type] ASC) As [RowID], [ID],
case when ([CaseOne] = 1) then 1 else case when ([Label] IS NOT NULL) then 2 else 3 end end AS [Type]
FROM [Table1]
使用2008 R2。您需要将您的案例陈述放入订单中。不能在ORDER BY或HAVING子句中使用别名列:
SELECT
ROW_NUMBER() OVER ( ORDER BY CASE WHEN ( [CaseOne] = 1 ) THEN 1
ELSE CASE WHEN ( [Label] IS NOT NULL )
THEN 2
ELSE 3
END
END ASC ) AS [RowID],
[ID],
CASE WHEN ( [CaseOne] = 1 ) THEN 1
ELSE CASE WHEN ( [Label] IS NOT NULL ) THEN 2
ELSE 3
END
END AS [Type]
FROM
[Table1]
多谢了,我在柱子上目不转睛地盯着自己