文章目录


第三十章 SQL函数 CONCAT

标量字符串函数,它返回作为连接两个字符表达式的结果的字符串。

大纲

{fn CONCAT(string-expression1,string-expression2)}

参数

  • ​string-expression1​​​, ​​string-expression2​​​ - 要连接的字符串表达式。表达式可以是列名、字符串文字、数字或另一个标量函数的结果,其中底层数据类型可以表示为任何字符类型(如​​CHAR​​​或​​VARCHAR​​)。

描述

连接两个字符串以返回连接的字符串。可以使用连接运算符(​​||​​)执行完全相同的操作。

可以连接数字或数字字符串的任意组合;连接结果是一个数字字符串。SQL在连接之前将数字转换为规范形式(指数被扩展,前导零和尾随零被删除)。在连接之前,数字字符串不会转换为规范形式。

可以将前导空格或尾随空格连接到字符串。将空值连接到字符串会产生空值;这是行业范围内的SQL标准。

字符串函数还可用于将两个或多个表达式连接成单个字符串。

示例

以下示例连接​​Home_State​​​和​​Home_City​​​列以创建位置值。使用​​CONCAT​​​函数和​​concatenate​​运算符显示两次连接:

SELECT {fn CONCAT(Home_State,Home_City)} AS LocationFunc,
Home_State||Home_City AS LocationOp
FROM Sample.Person

第三十章 SQL函数 CONCAT_sql

以下示例显示尝试连接字符串和空值时发生的情况:

SELECT {fn CONCAT(Home_State,NULL)} AS StrNull
FROM Sample.Person

下面的示例显示数字在连接之前转换为规范形式。要避免这种情况,可以将数字指定为字符串,如下所示:

SELECT {fn CONCAT(Home_State,0012.00E2)} AS StrNum,
{fn CONCAT(Home_State,'0012.00E2')} AS StrStrNum
FROM Sample.Person

第三十章 SQL函数 CONCAT_sql函数_02

以下示例显示将保留尾随空格:

SELECT CHAR_LENGTH({fn CONCAT(Home_State,'          ')}) AS StrSpace
FROM Sample.Person

第三十章 SQL函数 CONCAT_sql函数_03