有一个语句
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请前辈指导
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请前辈指导
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 @tbselect 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 行)
*/
select
SD.name, C.seid
from
SD inner join C
on SD.name = C.name
where
C.seid = 37
order by
SD.orderflag