是行转列吧? select * from T_HR_SCHMHIS_661459830094394 a UNPIVOT ( FNUMBER FOR FNAME_L2 IN ( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235') );没有效果
是行转列吧? select * from T_HR_SCHMHIS_661459830094394 a UNPIVOT ( FNUMBER FOR FNAME_L2 IN ( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235') );没有效果是行转列吧? select * from T_HR_SCHMHIS_661459830094394 a UNPIVOT ( FNUMBER FOR FNAME_L2 IN ( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235') );没有效果 而且我这个是要第一个表去关联第二个表的数据,跟行列转换没有关系吧?搞不懂
直接case when 就解决了
select FFSAL001 as '基本工资', FFSAL002 as '奖金' T_HR_SCHMHIS_661459830094394类似这样了,剩下的楼主自己补全楼上的各位理解错了意思,楼主并不想把表一转化为表二
select * from T_HR_SCHMHIS_661459830094394 a
UNPIVOT (
FNUMBER FOR FNAME_L2 IN
( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235')
);没有效果
select * from T_HR_SCHMHIS_661459830094394 a
UNPIVOT (
FNUMBER FOR FNAME_L2 IN
( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235')
);没有效果是行转列吧?
select * from T_HR_SCHMHIS_661459830094394 a
UNPIVOT (
FNUMBER FOR FNAME_L2 IN
( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235')
);没有效果
而且我这个是要第一个表去关联第二个表的数据,跟行列转换没有关系吧?搞不懂
不是unpivot,而是pivot,你去查一下语法,也是要in一百多个字段,省去了case when而已