case when 将 varchar 值'k'转换为数据类型为 int 的列时发生语法错误.
UPDATEBSETG_tcdk=(casewhenconvert(int,cast(G_tcdkasfloat))>0thenCAST(G_tcdk+'k'+A.C2A...
UPDATE B SET G_tcdk=(case when convert(int,cast(G_tcdk as float))>0 then CAST(G_tcdk+'k'+A.C2 AS varchar(10)) else A.C2 end)
请问如果修改,B 表中的G_tcdk字段本身就是varchar 类型。
例子:
UPDATE #tResult SET G_tcdk=(case when 1=1 then 'A'+12 else 0 end) 这条一样的结果
UPDATE #tResult SET G_tcdk= 'A' +12 --这条执行完全没有问题
我主要目地想显示:数据+汉字等字符类型 展开
请问如果修改,B 表中的G_tcdk字段本身就是varchar 类型。
例子:
UPDATE #tResult SET G_tcdk=(case when 1=1 then 'A'+12 else 0 end) 这条一样的结果
UPDATE #tResult SET G_tcdk= 'A' +12 --这条执行完全没有问题
我主要目地想显示:数据+汉字等字符类型 展开
1个回答
展开全部
若 B表中的G_tcdk字段里有像abc字符的话,是会报错的,是不允许这样转换的;
若B表中的G_tcdk字段是阿拉伯数字的字符串是可以这样操作转换的;
请问,你想怎样的操作?
若B表中的G_tcdk字段是阿拉伯数字的字符串是可以这样操作转换的;
请问,你想怎样的操作?
更多追问追答
追问
我想两者都要有,要显示数字加汉字
追答
case when 1=1 then 'A'+12 else 0 end 有语法错误啊,你可以转化一下,
分两个步骤走。
第一步:G_tcdk 设置 两个或多个(数字、字符)连接 赋予一个变量;
第二步:再进行update 语句 ,case when 可以换成 where 条件后置
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询