DB2字符串连接的实现过程


  本文标签:DB2字符串连接

  DB2字符串连接和oracle数据库相同,使用“||”进行DB2字符串连接,其使用方式和MSSQLServer中的加号“+”一样  。比如执行下面的SQL语句:
SELECT 工号为||FNumber||的员工姓名为||FName FROM T_Employee
WHERE FName IS NOT NULL

  除了“||”,DB2还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句:
SELECT CONCAT(工号:,FNumber) FROM T_Employee

  与Oracle不同,如果CONCAT中连接的值不是字符串,则DB2不会尝试进行类型转换而是报出错误信息,比如执行下面的SQL语句是错误的:
SELECT CONCAT(年龄:,FAge) FROM T_Employee

  运行以后DB2会报出下面的错误信息:
未找到类型为"FUNCTION" 命名为 "CONCAT" 且具有兼容自变量的已授权例

  与MYSQL的CONCAT()函数不同,DB2的CONCAT()函数只支持两个参数,不支持两个以上字符串的拼接,比如下面的SQL语句在Oracle中是错误的:
SELECT CONCAT(工号为,FNumber,的员工姓名为,FName) FROM T_Employee
WHERE FName IS NOT NULL
运行以后Oracle会报出下面的错误信息:
未找到类型为"FUNCTION" 命名为 "CONCAT" 且具有兼容自变量的已授权例程

  如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用,上面的SQL可以如下改写:
SELECT CONCAT(CONCAT(CONCAT(工号为,FNumber),的员工姓名为),FName) FROM
T_Employee
WHERE FName IS NOT NULL