2012-07-09 41 views

回答

14

没有功能差异。

||是ANSI标准字符串连接运算符(但不幸的是,不是每个数据库<cough>SQL Server</cough>都选择支持该标准)。许多数据库都支持CONCAT函数,因此使用CONCAT将代码移植到不同的数据库可能更容易。

+0

我只知道两个不符合SQL标准的DBMS:SQL Server和MySQL。 MySQL至少可以配置为接受'||'作为连接运算符。 – 2012-07-09 22:27:39

+3

+1为标签单独使用:-) – DCookie 2012-07-09 22:38:52

+0

呵呵,在SQL服务器上有一个等价的运算符'+',就像[oracle对ANSI标准函数的部分支持](http://docs.oracle.com/cd/ B19306_01/server.102/b14200/ap_standard_sql003.htm#sthref10080)CHARACTER_LENGTH,OCTET_LENGTH,SUBSTRING或POSITION函数。 – 2012-07-09 22:57:59

1

'concat'函数只能操作2个变量或列,而'concat'操作可以对任意数量的变量或列进行操作。

+2

在Oracle上,[这是事实](http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions026.htm)。 – NReilingh 2014-02-10 21:41:56

+2

CONCAT将在MySql中根据需要接收尽可能多的输入。 – 2014-05-17 04:38:16