sql server如何在拼接字符串中使用运算符(+-*/)?

如题 在一条sql拼接字符串中如何使用运算符
如 update 工资表 set 金额= 金额 + text.value
就是在原值基础上进行累加运算

以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。
sqlserver:
select '123'+'456';

oracle:

select '123'||'456' from dual;

select concat('123','456') from dual;
mysql:

select concat('123','456');

注意:oracle和mysql中虽然都有concat,但是oracle中只能拼接2个字符串,所以建议用||的方式;mysql中的concat则可以拼接多个字符串。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-12
create table #WageTable
(
Name varchar(50),
Wage varchar(50)
)
insert into #WageTable(Name,Wage) values('Had','10000')
select * from #WageTable

declare @i int;
set @i=5000;
update #WageTable set Wage=11000+@i
where Name='Had'

select * from #WageTable

drop table #WageTable
第2个回答  2015-01-12
text.value转下型就可以了吧,看下你金额是什么类型的就转成什么类型的追问

转值没问题
比如
string sql=" update 工资表 set 金额= 金额 + '"+text.value+"";
这样写会报异常
将截断字符串或二进制数据。
语句已终止。

追答

你这个是在哪个里面写的? 少了个单引号。string sql=" update 工资表 set 金额= 金额 + '"+text.value+"' ";

追问

额 写了个存储过程没事了 但是还是谢谢你

本回答被提问者采纳
相似回答