注册 登录
编程论坛 ASP.NET技术论坛

版主请帮帮忙解决一下这条SQL语句出错问题 好吗?

zmp3000 发布于 2012-07-03 10:24, 478 次点击
declare @sql varchar(8000),@PO VARCHAR(30)set @PO='00733651941'
SET @sql='select 箱号ID as ID,箱号,'select @sql=@sql+'sum(case 尺码 when '''+尺码+''' then 件数 else 0 end)as '''+尺码+''','
from (select distinct convert(int,尺码)as 尺码 from WG_PK_Z where Pk_No='00733651941')as a select @sql = left(@sql,len(@sql)-1) + ' from WG_PK_Z Where Pk_No='+''''+@PO+''''+' group by 箱号ID,箱号'exec(@sql)


错误提示如下:服务器: 消息 245,级别 16,状态 1,行 2
将 varchar 值 '' then 件数 else 0 end)as '' 转换为数据类型为 int 的列时发生语法错误。
3 回复
#2
yms1232012-07-06 09:36
个人感觉是单双引号的问题,检查一下单双引号
#3
zmp30002012-07-09 10:39
回复 2楼 yms123
如果不将尺码转换为整数型就不会出错,即如:select distinct convert(int,尺码)as 尺码 FROM WG_PK_Z WHERE PK_NO='00733651941'更改为:select distinct 尺码 FROM WG_PK_Z WHERE PK_NO='00733651941'这样就不会出错,不知为何!请高手指教
#4
zqfhgsww2012-07-09 16:30
我感觉二楼说的对
1