查询第n行数据
下面是我写的一条查询第n行的记录,第1条查询:
SELECT * FROM TableName WHERE ID=(
SELECT A.ID FROM (Select Top n * From TableName) AS A
LEFT OUTER JOIN (Select Top n-1 * From TableName) AS B ON B.ID=A.ID
WHERE B.ID IS NULL )
当我去掉第一条语句SELECT,如第2条查询:
SELECT A.* FROM (Select Top n * From TableName) AS A
LEFT OUTER JOIN (Select Top n-1 * From TableName) AS B ON B.ID=A.ID
WHERE B.ID IS NULL
想象的结果会是第n条记录,但我错了,查询返回的结果是1到n条记录。
我再修改语句成,第3条查询:
SELECT A.* ,B.* FROM (Select Top n * From TableName) AS A
LEFT OUTER JOIN (Select Top n-1 * From TableName) AS B ON B.ID=A.ID
WHERE B.ID IS NULL
返回的是只是第n条记录,与我要的结果基本相似,但多了个B.* 呵呵
问大家,如何理解第2,3条查询语句??