SQL CONCAT_WS 函数

SQL Server CONCAT_WS 字符串函数用于使用用户指定的.分隔符组合两个或多个字符串,并返回一个字符串。CONCAT_WS 函数的基本语法如下所示。

SELECT CONCAT_WS ('Seperator', String 1,String 2,..,String N)
FROM [Source]

在此带有分隔符的连接演示中,我们使用了下面显示的数据。

Employee Table 1

SQL CONCAT_WS 函数示例

CONCAT_WS 函数通过使用分隔符连接两个或多个字符串来返回一个字符串。以下查询将展示使用此字符串函数的多种方法。

提示:请参考 Concat 函数来理解常规的连接。

DECLARE @Str1 varchar(50), 
        @Str2 varchar(50)
SET @Str1 = 'Learn' 
SET @Str2 = 'SQL Server'

SELECT CONCAT_WS(' ', @Str1, @Str2) AS 'ConcatText' 

SELECT CONCAT_WS(',', @Str1, @Str2) AS 'ConcatText' 

--Concating four String using comma
SELECT CONCAT_WS(' , ', 'Learn', 'SQL Server','at', 'Tutorial Gateway') AS 'ConcatText'

SELECT CONCAT_WS(' HI ', 'Learn', 'SQL Server','at', 'Tutorial Gateway') AS 'ConcatText'
CONCAT_WS Example 1

在此带分隔符的字符串连接示例中,下面的语句使用空格连接 str1 和 str2。我们还使用了 SQL Server 中的 别名 (ALIAS) 列为其指定了新名称。

SELECT CONCAT_WS(' ', @Str1, @Str2) AS 'ConcatText' 

CONCAT_WS 函数在表列上应用

在此示例中,我们将组合 Employee 表中的 First name、Last Name 和 yearly Income 列,以及文本 = ‘is earning’。

在这里,我们使用‘ * ’在每个列之间插入*。如果你想要逗号或其他内容,请将*替换为逗号。

SELECT [FirstName]
      ,[LastName]
      ,[Education]
      ,[Occupation]
      ,CONCAT_WS(
		 ' * ', [FirstName], [LastName],'is earning', [YearlyIncome]
	        ) AS [Description]
 FROM [Employee]
CONCAT_WS Function 3