注:在oracle中,需要上述多次拼接应使用||,因为concat()一次只能拼接2个,需要多次嵌套。而在mysql中,可以实现concat(col1,col2,coln....)

官方文档链接:
CONCAT
Concatenation Operator

 两者等效:

1. concat

[Database]Oracle数据库中concat和||的区别

2. ||

[Database]Oracle数据库中concat和||的区别

 官方文档:连字符

[Database]Oracle数据库中concat和||的区别

连接两个字符串的结果还是字符串. 如果2个字符串都是CHAR类型, 那么结果是限制长度为2000字符的CHAR类型字符串.

如果任一字符串是VARCHAR2类型, 结果是限制长度为4000字符的VARCHAR2类型字符串.

如果任一字符串是CLOB类型, 结果是暂时的CLOB类型.

结尾空白在连接中会被保留, 数据类型是字符串还是CLOB.

 

在大多数平台, 连字符是两个实心竖线, 然而在一些IBM平台, 是两个断竖线, 当在使用不同字符集的系统中移动SQL脚本时, 竖线也许不会被转译成竖线 , 所以Oracle提供了CONCAT函数来作为替代以应对这种情况.

尽管Oracle将0长度的字符串视为null, 连接0长度的字符串和另一个字符串会得出该字符串, 所以只有两端都是null字符串时会得到null字符串. 然而后续版本可能不会继续支持.

如果想要连接一个可能是null的表达式, 使用NVL函数来将表达式转换为0长度的字符串. 

 

参考资料

相关文章:

  • 2021-08-04
  • 2021-07-06
  • 2021-11-28
  • 2021-11-30
  • 2021-12-07
  • 2021-12-17
  • 2022-12-23
  • 2022-03-01
猜你喜欢
  • 2022-02-09
  • 2022-03-05
  • 2022-12-23
  • 2021-07-05
  • 2021-11-24
  • 2021-07-11
相关资源
相似解决方案