DB2 concat vs双管道

时间:2013-03-05 18:43:25

标签: performance db2 double pipe concat

这两个视图中的哪一个需要较少的CPU?

我正在检查一些视图的句子,如果将concat函数替换为双管,则需要知道是否有一些性能改进。

create view VIEW1 as
select concat(concat(concat(concat(concat(concat(concat(concat(concat(A, B),C),D),E),F),F),G),H),I) from TABLE

create view VIEW2 as
select A||B||C||D||E||F||G||H||I from TABLE

4 个答案:

答案 0 :(得分:11)

来自Information Center

  

CONCAT功能与CONCAT运算符相同。更多   信息,请参阅With the concatenation operator

所以,明确的答案是:它们是一样的。但是,IBM确实有这样的说法:

  

垂直条(或必须使用的字符代替   某些国家/地区的竖条可能会导致解析错误   语句从一个DBMS传递到另一个DBMS。如果出现问题   声明经历了某些组合的字符转换   源和目标CCSID。因此,CONCAT是首选   连接运算符。

答案 1 :(得分:1)

我不认为会有性能差异,但使用管道会让它更容易阅读。

答案 2 :(得分:0)

为什么不简单地做

创建视图VIEW1为 从表中选择A concat B concat C concat D concat E concat F concat F concat G concat H concat I

答案 3 :(得分:0)

不确定性能,但它们在处理 null 值时表现不同。请参阅:String concatenation with a null seems to nullify the entire string - is that desired behavior in Postgres?