sql行转列的时候遇到 varchar 值 '女' 转换成数据类型 int 时失败.求大神解决!!

declare@SQLvarchar(8000)set@SQL='selectCBHAS'+'编号'select@SQL=@sql+',max(caseCXMBMwhen... declare @SQL varchar(8000)
set @SQL='select CBH AS '+'编号 '
select @SQL=@sql +' ,max(case CXMBM when '''+ CXMBM+ '''then CDATA2 else 0 end)['+CXMBM+']'from (select distinct CXMBM from YSGZZ..TBCYJLMX )as a
set @SQL =@SQL+'from YSGZZ..TBCYJLMX group by CBH'
exec(@sql)
这是SQL语句!
展开
 我来答
li101chao
2014-11-07 · TA获得超过233个赞
知道小有建树答主
回答量:1044
采纳率:92%
帮助的人:659万
展开全部
我不知道你的表结构,我假设下:
如果CDATA2这个字段是Int,你的写法应该是
select @SQL=@sql +' ,sum(case CXMBM when '''+ CXMBM+ '''then CDATA2 else 0 end)--max换成sum
如果CDATA2这个字段是varchar,你的写法应该是
select @SQL=@sql +' ,max(case CXMBM when '''+ CXMBM+ '''then CDATA2 else '''' end)--字符比较的话,''的ascii码小,而不是用‘0’

~~~希望有所帮助~
最后,这种字符串拼出来的命令,可以用print(@sql)来查嘛,一目了然
救救大汉江山吧
2014-11-07 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:98.7万
展开全部
print(@sql)
exec(@sql)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2014-11-07 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4116万
展开全部
'女' 转换成数据类型 int 是 多少?

说明你这列中有字符,不能转换成int的
更多追问追答
追问
行列转换怎么出现的类型转换错误呢?没搞懂这点!!
追答
是不是这儿的问题:

max(case CXMBM when '''+ CXMBM+ '''then CDATA2 else 0 end)

因为你这儿有 else 0,所以当作 int 处理了?

max(case CXMBM when '''+ CXMBM+ '''then CDATA2 else '0' end)

试试!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JerryShang0226
2014-11-07 · TA获得超过1844个赞
知道小有建树答主
回答量:1039
采纳率:86%
帮助的人:195万
展开全部
语句第三行
select @SQL 你写错了
追问
请问怎么写才对呢??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式