在 Sql Server 2016 中拆分字符串

在 **SQL Server 2016 中,**他们最终引入了 Split 字符串函数: STRING_SPLIT

参数: 它接受两个参数

字符串

是任何字符类型的表达式(即 nvarchar,varchar,nchar 或 char)。

分隔符

是任何字符类型的单个字符表达式(例如 nvarchar(1),varchar(1),nchar(1) 或 char(1)),用作连接字符串的分隔符。

注意: 你应始终检查表达式是否为非空字符串。

例:

Select Value
From STRING_SPLIT('a|b|c','|')

在上面的例子中

String    : 'a|b|c'
separator : '|'

结果:

+-----+
|Value|
+-----+
|a    |
+-----+
|b    |
+-----+
|c    |
+-----+

如果它是一个空字符串:

SELECT value
FROM STRING_SPLIT('',',')

结果:

  +-----+
  |Value|
  +-----+
1 |     |
  +-----+

你可以通过添加 WHERE 子句来避免上述情况

SELECT value
FROM STRING_SPLIT('',',')
WHERE LTRIM(RTRIM(value))<>''