假设我有一个SQL Server employee
表,如下所示:
No empno
-----------
1 NULL
2 7889
3 7778
4 6454
5 7777
我要选择第3行
SET @count = 3
SELECT TOP (@count) empno
FROM employee
EXCEPT
SELECT TOP (@count-1) empno
FROM employee
我在@count
遇到错误:
必须声明标量变量@count
我该如何解决这个问题?
顺便说一句,我使用Microsoft SQL Server Management Studio,但它们没有SELECT ROW
吗?
答案 0 :(得分:1)
您必须先声明变量
DECLARE @count int
SET @count = 3
SELECT TOP (@count) empno FROM employee EXCEPT
SELECT TOP (@count-1) empno FROM employee
或者您可以使用Row_number()
选择单个行
看这里,它将帮助您做到这一点
http://www.advancesharp.com/questions/18687/select-nth-row-from-a-table-in-sql-server
答案 1 :(得分:0)
它不像EXCEPT那样漂亮,但是它只读取一次表:
DECLARE @count INT = 3
SELECT TOP 1 * FROM (
SELECT TOP (@count) * FROM employee ORDER BY empno
) as t ORDER BY empno Desc