由列转行
由列转行
有一表如下
declare @t table(FG varchar(10),LotNo varchar(10),col1 varchar(10),qty1 int,col2 varchar(10),qty2 int,col3 varchar(10),qty3 int)
insert @t select '05/5067','N1256','xx',6,'ss',7,'kk',9
select * from @t
要求得到以下结果
FG LotNo col qty
05/5067 N1256 xx 6
05/5067 N1256 ss 7
05/5067 N1256 kk 9
因col,qty 太多,能否用动态语句编写?
顺便请问一下,我怎么给各位有心人分数阿?
问题点数:20、回复次数:4Top
1 楼hycheng163()回复于 2006-03-07 19:24:21 得分 0
有一表如下
declare @t table(FG varchar(10),LotNo varchar(10),col1 varchar(10),qty1 int,col2 varchar(10),qty2 int,col3 varchar(10),qty3 int)
insert @t select '05/5067','N1256','xx',6,'ss',7,'kk',9
INSERT @T SELECT '06/6067','N3256','HH',15,'RR',7,NULL,NULL
INSERT @T SELECT '07/6167','N3336','JJ',15,NULL,NULL,'GG',7
select * from @t
要求得到以下结果
FG LotNo col qty
05/5067 N1256 xx 6
05/5067 N1256 ss 7
05/5067 N1256 kk 9
06/6067 N3256 HH 15
06/6067 N3256 RR 7
07/6167 N3336 JJ 15
07/6167 N3336 GG 7
因col,qty 太多,能否用动态语句编写?
顺便请问一下,我怎么给各位有心人分数阿?
难道没有人看过么?Top
2 楼lsqkeke(可可)回复于 2006-03-07 19:36:44 得分 20
select * from
(
select FG,LotNo,col=col1,qty=qty1 from @t
union all
select FG,LotNo,col2,qty2 from @t
union all
select FG,LotNo,col3,qty3 from @t
)t
where col is not null
order by FG
Top
3 楼lsqkeke(可可)回复于 2006-03-07 19:38:29 得分 0
顺便请问一下,我怎么给各位有心人分数阿?
------------------------
在”我的技术社区“—》"我的问题"——》管理——》 给分 ——》输入你的帐号密码——》点”给分“Top
4 楼hycheng163()回复于 2006-03-07 19:57:37 得分 0
还想请教一下可可,能否用动态SQL写出来,因为col,qty 有好多列,谢谢!Top




