由
生成的示例表select
ROW_NUMBER() over (order by color) as row,
color
from color_table
输出:
row color
----------
1 black
2 blue
3 cyan
4 yellow
然后我想用例如排除一些行。 WHERE color<>"blue"
但行应保持不变。
结果表应为
row color
---------
1 black
3 cyan
4 yellow
如何编写此查询?表格相当大,因此查询应该是有效的。
答案 0 :(得分:2)
您可以使用CTE来简化逻辑。
;WITH Numbered_clor_table
AS
(
select ROW_NUMBER() over (order by color) as row, color from color_table
)
SELECT *
FROM Numbered_clor_table
WHERE color != 'blue'
答案 1 :(得分:1)
将其包装在子查询中并将结果过滤到外面。
SELECT *
FROM (select ROW_NUMBER() over (order by color) as row, color from color_table) a
WHERE color != 'blue'