注册 登录
编程论坛 SQL Server论坛

求助:为何SQL SERVER里不能用 || 运算符 ?

xuecg 发布于 2007-05-18 23:46, 655 次点击
今天想将两个字符串类型字段的内容连接后写入一个新的字段,发现||运算符用不了,报语法错误

[此贴子已经被作者于2007-5-18 23:46:50编辑过]


9 回复
#2
hyfz_8252007-05-18 23:58
   在SQL Server 中没有||这个运算符,用or 可以达到你想的结果!
#3
xuecg2007-05-19 00:39
我是这样写的 UPDATE cTable SET cField3 = cField1 || cField2
其中cField1,cField2,cField3都是varchar类型的,我需要将cfield1和cfield2连接后写入cfield3,用or怎么实现?
#4
xuecg2007-05-19 00:43
刚才查了一下文献:
"Access, SQL Server, and Sybase support + for concatenation. DB2, Oracle, PostgreSQL, and Sybase support ||. "
可是偶今天用"+"也报错,不知为啥?
#5
初学Delphi2007-05-19 13:23
楼主的意思是想在原来的基础上加上新字符串么?


"+" 是不是单引号你写错了?
这里面字符型全市单引号
#6
xuecg2007-05-19 17:44
也记不清了,后来功能用别的方法实现了,也就没有再深究
当时像是这么写的
UPDATE cTable SET cField3 = cField1 + cField2

cField1、cField2、cField3都是cTable表的字段名,是字符类型,这里应该不用加单引号吧

#7
初学Delphi2007-05-19 18:16
明白楼主的意思了。。。
看你说的
:“可是偶今天用"+"也报错,不知为啥?”
我以为 你用的字符串相加呢
#8
初学Delphi2007-05-19 18:20
我刚测试了
可以直接相加
如果你出现错误可能是因为你的字段长度的问题
#9
初学Delphi2007-05-19 18:22
以下是引用xuecg在2007-5-19 17:44:27的发言:
也记不清了,后来功能用别的方法实现了,也就没有再深究
当时像是这么写的
UPDATE cTable SET cField3 = cField1 + cField2

cField1、cField2、cField3都是cTable表的字段名,是字符类型,这里应该不用加单引号吧

你看以下是不是 cfiled3的长度大于cfiled1+cfiled2的长度的问题?
数据类型要一样

#10
xuecg2007-05-19 18:44
3x,回头再研究研究
1