create table tb(id1 varchar(10),id2 varchar(10)) insert into tb select 'a','i' insert into tb select 'b','j' insert into tb select 'c','a' insert into tb select 'd','k'declare @count int,@i int select @count=count(1) from tb set @i=1 if @count>0 while(@i<=@count) begin select id2 from (select row_number() over(order by id1) as id,* from tb)temp where id=@i set @i=@i+1 endi j a k或用游标
create table A ( ID1 nvarchar(10), ID2 nvarchar(10) )insert A select 'A', 'I' union all select 'B', 'J' union all select 'C', 'A' union all select 'D', 'K' declare @sql nvarchar(4000) set @sql='' select @sql=@sql+quotename(ID2,'''')+' ' from A print @sql--result 'I' 'J' 'A' 'K'
declare @resualt nvarchar(4000) set @resualt='' select @resualt=@resualt+ [ID2] FROM [A] WHERE [ID1]<>(SELECT TOP 1 FROM [A])SELECT @resualt
insert into tb select 'a','i'
insert into tb select 'b','j'
insert into tb select 'c','a'
insert into tb select 'd','k'declare @count int,@i int
select @count=count(1) from tb
set @i=1
if @count>0
while(@i<=@count)
begin
select id2 from (select row_number() over(order by id1) as id,* from tb)temp where id=@i
set @i=@i+1
endi
j
a
k或用游标
create table A
(
ID1 nvarchar(10),
ID2 nvarchar(10)
)insert A select 'A', 'I'
union all select 'B', 'J'
union all select 'C', 'A'
union all select 'D', 'K'
declare @sql nvarchar(4000)
set @sql=''
select @sql=@sql+quotename(ID2,'''')+' '
from A
print @sql--result
'I' 'J' 'A' 'K'
set @resualt=''
select @resualt=@resualt+ [ID2] FROM [A] WHERE [ID1]<>(SELECT TOP 1 FROM [A])SELECT @resualt