我想在条件中使用top子句。
我想这样做:-
SELECT column_name_1,column_name_2,column_name_n
FROM table_name
Where condition and top n.
答案 0 :(得分:0)
您可以使用排名功能(ROW_NUMBER()
/ RANK()
/ DENSE_RANK()
,具体取决于您的要求)和子查询。但是我不知道为什么你会想要这样做。它比较冗长,没有任何好处,请考虑以下查询,这些查询是等效的(就结果而言,不一定是执行计划):
DECLARE @N INT = 5;
SELECT TOP (@N) name
FROM sys.all_objects
ORDER BY object_id;
SELECT name
FROM ( SELECT object_id, name, RowNum = ROW_NUMBER() OVER(ORDER BY object_id)
FROM sys.all_objects
) AS o
WHERE RowNum <= @N;
我知道我更容易阅读