导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

sql根据另一个表的某个相同字段进行排序?

ClsData 2007-12-24 04:22:37
有一个语句
select distinct top 3 Name,orderflag from SD order by orderflag asc

输出数据
name orderflag
d 1
c 2
b 3

另一个表中也有name这个字段,并且不会有重复等问题

如果不需要根据第一条语句进行排序搜出来的是这样的

SELECT name FROM C where id in
(select id from C where seid=37)
name seid
b 37
c 37
d 37

可是我现在的问题是要根据第一条输出的name对第二条返回的结果集进行排序
让他的name和第一条结果集的一样(重复、个数不同、名称不同不考虑)
输出应该是
name seid
d 37
c 37
b 37

请前辈指导
...全文
99 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
echiynn 2007-12-24

select
SD.name, C.seid
from
SD inner join C
on SD.name = C.name
where
C.seid = 37
order by
SD.orderflag
回复
-狙击手- 2007-12-24
declare @t table(name char(1),orderflag  int)
insert @t select 'd',1
insert @t select 'c',2
insert @t select 'b',3

declare @tb table(name char(1),seid int)
insert @tb select 'b',37
insert @tb select 'c',37
insert @tb select 'd',37

select * from @tb

select b.*
from @tb b
left join @t a on a.name = b.name
order by a.orderflag

/*
name seid
---- -----------
b 37
c 37
d 37

(所影响的行数为 3 行)

name seid
---- -----------
d 37
c 37
b 37

(所影响的行数为 3 行)
*/
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告