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时,通过如下三个规则判断返回的数据类型:
- 规则1:当参数列表中只有一个CLOB时,如果前面不包含NCHAR、NVARCHAR数据,则返回CLOB,否则返回NCLOB。
- 规则2:当参数列表中只有一个NCLOB时,如果前面包含NCHAR、NVARCHAR数据或者没有其他参数,则返回NCLOB,否则返回CLOB。
- 规则3:当有多个CLOB或这NCLOB时,则以参数列表中从左往右的第一个CLOB或者NCLOB作为唯一的CLOB或者NCLOB代入上述规则1或者规则2。
- 当expr值为NULL时,函数将其转换为长度为0的VARCHAR字符串。
对于列存表中的CLOB类型字段,若某行数据为行外存储,则无法使用本函数。
示例
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3082080/
,如需转载,请注明出处,否则将追究法律责任。