一句SQL語句意思???

「已注销」 2008-12-16 03:17:10
SELECT TOP (3) *
FROM test
WHERE (id >
(SELECT MAX(id) AS Expr1
FROM (SELECT TOP (5) id
FROM test AS test_1
ORDER BY id) AS a))
ORDER BY id


這句話是什麽意思?
max(id) as expr1
as test_1
as a
這三個地方什麽意思?
其他基礎的語句都懂
就這幾個地方沒見過這樣寫的
...全文
50 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qizhengsheng 2008-12-16
  • 打赏
  • 举报
回复
帮顶JF
「已注销」 2008-12-16
  • 打赏
  • 举报
回复
Tkanks
「已注销」 2008-12-16
  • 打赏
  • 举报
回复
同事給講懂了
先把test升序排序建立虛擬表test_1
然後取前5個作為虛擬表a
從a中取最大的id為Expr1
再從test中取比Expr1大的3個升序排序
claro 2008-12-16
  • 打赏
  • 举报
回复
帮顶,jf
水族杰纶 2008-12-16
  • 打赏
  • 举报
回复
SELECT    TOP 3 *  FROM        test 
WHERE (id >(SELECT MAX(id) AS Expr1 FROM (SELECT TOP 5 id FROM test AS test_1 ORDER BY id) AS a))
ORDER BY id
--分解
(SELECT TOP 5 id FROM test AS test_1 ORDER BY id)AS A
--從上面語句中(相當與a表)查找最大id
SELECT MAX(id) AS Expr1 FROM (SELECT TOP 5 id FROM test AS test_1 ORDER BY id) AS a
--從TEST 中查找符合id>上面的的紀錄
WHERE (id >(SELECT MAX(id) AS Expr1 FROM (SELECT TOP 5 id FROM test AS test_1 ORDER BY id) AS a))
--其中A,EXPR1分別為別名
DFGRED 2008-12-16
  • 打赏
  • 举报
回复
那是给字段取别名的吧~ 可是在这里这么写也没什么意义啊~ 最后一个 AS a 是有必要的
dawugui 2008-12-16
  • 打赏
  • 举报
回复

--这样能看明白吗?
SELECT TOP 3 * FROM test WHERE
(id >
(
SELECT MAX(id) AS Expr1 FROM
(
SELECT TOP 5 id FROM test AS test_1 ORDER BY id
) AS a
)
)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧