--1
(select * , row_number() over (order by columnname) as tempcolumn
from tablename )
--2
select * , row_number() over (order by defid) as tempcolumn
from fields
where tempcolumn between 1 and 2
第一个查询将为整个表添加一个新列。
我需要在检查tempcolumn的范围后显示结果。 我尝试的第二个查询抛出了像tempcolumn不存在的错误
答案 0 :(得分:2)
您可以使用子查询:
SELECT * FROM (
select *,ROW_NUMBER() OVER(ORDER BY columnname) as tempcolumn
from tablename) sub
WHERE tempcolumn <= 2;
您不能在同一级SELECT
子句中使用WHERE
中的别名,也不能将ROW_NUMBER()
用作WHERE
的一部分。
更多信息: