SQL一行转两行的方法
现在查出来的数据是这样的
但是这样没法用 where in 查询 能不能把他转换成 这个样子的啊
With T1 (in_seq,use_dept) as(select '20144570','004' union all select '20144570','027' union all select '20144598','004' union all select '20144598', '031') select *,ROW_NUMBER() over (partition by in_seq order by use_dept) as rn into #T from T1 select * from #T declare @s varchar(max) select @s=ISNULL(@s+',','')+'MAX(case when rn='''+convert(varchar,rn)+''' then use_dept end) as [use_dept'+convert(varchar,rn)+']' from #T group by rn set @s='select in_seq,'+@s+' from #T group by in_seq' print @s exec(@s) drop table #T
oracle行变列(多行变成一行/多行合并成一行/多行合并成多列/合并行)
热门标签: