SQL语句又有问题了

来源:百度知道 编辑:UC知道 时间:2024/09/22 17:18:00
select id,tupian,mingcheng,bianhao,case when youhuijia=0 then jiage else '<font style=\"text-decoration:line-through\">'+jiage+'</font>' end as jiage,caizhi,case when youhuijia=0 then ' ' else youhuijia end as youhuijia from shangpin where id in(select shangpinid from shoucang where yonghuid=@id)
错误:将 varchar 值 '<font style="text-decoration:line-through">' 转换为数据类型为 int 的列时发生语法
我是想优惠价为0的话就只显示原价,否则把原价划掉,用时显示优惠价
如果不是int型的就可以啊,,这样就可以直接绑定到datalist了啊
-------------------------------------------------------------
查询的时候能转换数据类型吗
-------------------------------
select id,tupian,mingcheng,bianhao,case when youhuijia=0 then CONVERT(nvarchar,jiage) else '<font style=\"text-decoration:line-through\">'+CONVERT(nvarchar,jiage)+'</font>' end as jiagea,caizhi,case when youhuijia=0 then ' ' else youhuijia end as youhuijia from

else '<font style=\"text-decoration:line-through\">'+jiage+'</font>' end
改成

else '<font style=\"text-decoration:line-through\">'+cast(jiage as varchar(20)+'</font>' end

就可以了
-----------------------------------------------------------------
CONVERT 和cast功能本来就一样的.不过你只是简单转换的话..最好用cast

典型的不知道瞎写。
sql语句不可以和html混写的。
如果你想判断的话,可以分开来写
先用sql查产品的的原价是否为0,然后判断,如果为0再用脚本(如asp)输出font style=\"text-decoration:line-through\"></font>

为什么要判定到datalist呢?你可以查询到dataset中。然后再判断啊。

---------------------------------------
不明白为什么要这么写,在sql里判断输出html。不太明白,写程序遵循的是一个规范……

我觉得你可以用cast(jiage as varchar(50))--(不知道写错没,你查下,就是类型转换)转换成字符串型,然后再用字符串连接..

youhuijia=0修改为youhuijia='0'
因为你的字段youhuijia的类型为nvarchar()而不是int。