SQL Server CONCAT_WS 函数

2025年3月17日 | 阅读 3 分钟

CONCAT_WS 是一个字符串函数,它通过**连接**或联接两个或多个字符串来**返回单个字符串**。**它还使用分隔符作为其第一个参数来分隔这些连接的字符串值**。 CONCAT_WS 意味着使用分隔符连接。它可以接受数字、字符或日期作为输入参数。我们确保此函数至少需要三个输入参数(包括分隔符),并且最多可以扩展到 254 个输入参数。

注意:CONCAT_WS 函数在连接之前隐式地将非字符字符串值转换为字符串。

语法

以下是说明 SQL Server 中 CONCAT_WS 函数的基本语法

在上面的语法中,我们使用以下参数

**Separator**:它是一个表达式,可以计算为任何字符类型 char、nchar、nvarchar 或 varchar。

**input_string1, input_string2,…,input_stringN**:这些是任何类型的表达式,例如数字、字符或日期。

以下是与表一起使用的语法

示例

让我们通过下面给出的基本示例来了解 CONCAT_WS 函数的工作原理

在该语句中,我们提供了两个输入参数和一个空字符串作为分隔符,因为它位于第一个位置。 执行该函数将返回以下输出,我们看到该函数将结果组合在一起,然后使用空格分隔它们

SQL Server CONCAT_WS Function

CONCAT_WS() 与 NULL

下面的示例将演示 CONCAT_WS() 函数如何处理具有 NULL 值的输入字符串

执行该语句将正确返回结果

SQL Server CONCAT_WS Function

我们已经了解到,CONCAT_WS 函数始终至少需要两个参数和一个分隔符作为其第一个参数才能显示结果。 否则,SQL Server 将抛出一个错误。 下面的示例更清楚地解释了这一点

这是错误消息

SQL Server CONCAT_WS Function

以下示例将连接数字字符串并使用逗号分隔符分隔它们

当我们执行上面的语句时,我们将得到用逗号分隔的数字结果

SQL Server CONCAT_WS Function

CONCAT_WS 与表

我们也可以将此函数与表的列一起使用。 在这里,我们将使用一个学生表来演示此函数。 假设学生表包含以下数据

SQL Server CONCAT_WS Function

假设我们想要**合并学生表的姓和名**,并用一个逗号和空格分隔它们。 我们可以通过使用以下语句来实现,其中连接的字符串成为**全名**

执行该语句将返回以下结果

SQL Server CONCAT_WS Function

CONCAT_WS() 生成 CSV 文件

CSV 是一个纯文本文件,包含一个用逗号分隔的数据列表。 我们还可以使用此函数通过使用逗号 (,) 作为分隔符并连接 **admission_no、first_name、last_name、age 和 city 列**中的值来生成 CSV 文件,如下面的语句所示

执行该语句将返回以下输出

StudentInfo
---------------------------------------
Luisa, Evans, 13, Texas 
Paul, Ward, 15, Alaska 
Peter, Bennett, 14, California 
Carlos, Patterson, 17, New York 
Rose, Huges, 16, Florida 
Mariellia, Simmons, 15, Arizona 
Antonio, Butler, 14, New York 
Diego, Cox, 13, California

CONCAT() 与 CONCAT_WS() 函数

我们使用 CONCAT 和 CONCAT_WS 函数来合并或联接两个或多个字符串。 但是,这些函数有一些差异,如下所示

  • CONCAT WS() 函数将使用分隔符连接字符串,而 CONCAT() 方法没有使用分隔符的概念。
  • 当任何参数为 NULL 时,CONCAT() 方法返回 NULL,而当分隔符为 NULL 时,CONCAT WS() 函数返回 NULL。

下一个主题SQL Server 复制