请教各位高手,转换出错...

bdx808 bdx808 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位,新年好!
原表如下:
XH CJX CJ
012345678901 X100 88.00
012345678901 Y200 45.00
012345678901 Z500 106.05
012345678902 X100 100.00
012345678902 Z300 90.00
....

想把上表中的数据换成如下(里面不能有null,CJX有很多的):
xh X100 Y200 Z300 Z500
012345678901 88.00 45.00 106.05
012345678902 100.00 90.00

用如下行列转换代码为什么错误?
IF object_id('tb') is not null
DROP TABLE tb
go
create table tb(xh char(12) ,cjx char(10), cj numeric(6,2))
insert into tb values ('012345678901','X100',88.00)
insert into tb values ('012345678901','Y200',45.00)
insert into tb values ('012345678901','Z500',106.05)
insert into tb values ('012345678902','X100',100.00)
insert into tb values ('012345678902','Z300',90.00)
-- select * from tb

declare @sql varchar(8000)
set @sql=''
select @sql=@sql+',max(case when cjx='''+cjx+''' then cj else '''' end) as '+cjx
from tb
group by cjx

select @sql='select xh'+@sql+' into Temp from tb group by xh'
exec(@sql)
-- select * from Temp
提示:从数据类型 varchar 转换为 numeric 时出错。
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
bdx808
疑难问题 22,298 成员 121,727 内容