[求助]子查询的写法

mzcih 2005-10-21 10:38:00
二级子查询

Select Top 10 * From Pait

Where M_Key <(Select Max(M_Key) From Pait) And Pno Like '%00-13%' Order By M_KEY DESC

得出的结果集是:
M_KEY
20
19
...
10

(数据表共20条符合的记录,分别是1 TO 20,但我只取最大10条,就是11 TO 20条记录)

现在是倒序排列,我想将其重排为升序

我用以下语句但出错:

Select Top 10 * From Pait Where M_Key In

(Select Top 10 * From Pait

Where M_Key <(Select Max(M_Key) From Pait) And Pno Like '%00-13%' Order By M_KEY DESC)

Order By M_Key ASC

最终结果是:
10
11
12
...
20

请问该如何写这句SQL呢?
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mzcih 2005-10-21
  • 打赏
  • 举报
回复
TO: lizhaogui()

谢谢T的解释

你的SQL和我那句一样,不行。

TO:churchatp1(别看资料,看聊效!)

你的语句通过。
churchatp1 2005-10-21
  • 打赏
  • 举报
回复
把你的第一次生成的结果集当成一个表,t就是相当于你的这个表的别名,这里的a类似
churchatp1 2005-10-21
  • 打赏
  • 举报
回复
试试看这样:
Select Top 10 * From (Select Top 10 * From Pait

Where M_Key <(Select Max(M_Key) From Pait) And Pno Like '%00-13%' Order By M_KEY DESC) a

Order By a.M_Key ASC
lizhaogui 2005-10-21
  • 打赏
  • 举报
回复
t 就是那个新生成的表数据集的意思
lizhaogui 2005-10-21
  • 打赏
  • 举报
回复
Select 列出你的所有字段 From Pait Where M_Key In

(Select Top 10 * From Pait

Where M_Key <(Select Max(M_Key) From Pait) And Pno Like '%00-13%' Order By M_KEY DESC)

Order By M_Key
mzcih 2005-10-21
  • 打赏
  • 举报
回复
谢谢,但我看不明白那个

)t

其中的“t”是什么意思呢?
vivianfdlpw 2005-10-21
  • 打赏
  • 举报
回复
select *
from (
Select Top 10 *
From Pait
Where M_Key <(Select Max(M_Key) From Pait)
And Pno Like '%00-13%'
Order By M_KEY DESC

)t
Order By M_KEY

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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