YashanDB 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 时,通过如下三个规则判断返回的数据类型:
规则 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 类型字段,若某行数据为行外存储,则无法使用本函数。
示例
评论