#CONCAT
CONCAT函数将多个expr的值连接成一个字符串,expr的个数最少为2个,最多为65535个。
此函数等同于:expr||expr||...。
函数遵循如下规则:
- 对于非字符型/CLOB类型的expr值,函数先进行到CHAR类型的转换,如类型转换不成功,则返回类型转换错误。
- 参数类型优先级:
- 当expr值中不存在CLOB、NCLOB类型时:
- 仅包含CHAR/NCHAR类型数据时,函数返回CHAR/NCHAR类型的字符串。
- 仅包含CHAR和VARCHAR类型数据时,函数返回VARCHAR类型的字符串。
- 仅包含CHAR和NCHAR类型数据时,函数返回NCHAR类型的字符串。
- 存在NVARCHAR类型数据时,函数返回NVARCHAR类型的字符串。
- 不包含NVARCHAR类型数据,但存在VARCHAR和NCHAR类型时,函数返回NVARCHAR类型的字符串。
- 当expr值中存在CLOB或NCLOB类型时:
- 包含CLOB但不包含NCLOB时,函数返回CLOB类型字符串。
- 包含NCLOB类型数据时,当NCLOB类型数据前不包含CHAR、VARCHAR和CLOB数据时,返回NCLOB类型数据,否则返回CLOB类型字符串。
- 当expr值中不存在CLOB、NCLOB类型时:
- 当expr值为NULL时,函数将其转换为长度为0的VARCHAR字符串。
示例
SELECT CONCAT(employee_name,' has joined us for ',CEIL(SYSDATE-entry_date),' days.') res FROM employees;
RES
----------------------------------------------------------------
Mask has joined us for 1001 days.
John has joined us for 2001 days.
Anna has joined us for 301 days.
Jack has joined us for 701 days.
Jim has joined us for 201 days.