Sql server 从逗号分隔的字符串中获取值

Sql server 从逗号分隔的字符串中获取值,sql-server,tsql,sql-server-2012,Sql Server,Tsql,Sql Server 2012,我正在使用SQL Server 2012-不幸的是,此版本中未实现字符串分割函数 我的问题是:我有一个字符串@cRECE_STA='a,B,C'-希望从该字符串中获得如下值: +------+ | Col1 | +------+ | A | | B | | C | +------+ 我需要这个,因为这些值稍后将逐个插入表中。如何执行此操作?如果字符串中只有字符,则可以使用 DECLARE @Str VARCHAR(45) = 'A,B,C,D,E,F,G,H,I'; WIT

我正在使用SQL Server 2012-不幸的是,此版本中未实现字符串分割函数

我的问题是:我有一个字符串@cRECE_STA='a,B,C'-希望从该字符串中获得如下值:

+------+
| Col1 |
+------+
| A    |
| B    |
| C    |
+------+

我需要这个,因为这些值稍后将逐个插入表中。如何执行此操作?

如果字符串中只有字符,则可以使用

DECLARE @Str VARCHAR(45) = 'A,B,C,D,E,F,G,H,I';

WITH LN(IDX) AS
(
  SELECT 1
  UNION ALL
  SELECT IDX + 1
  FROM LN
  WHERE IDX <= LEN(@Str)
)
,
Str(ID, V) AS
(
  SELECT 1, @Str
)
SELECT SUBSTRING(V, IDX, ID) Results
FROM Str CROSS JOIN LN
WHERE IDX % 2 = 1;
如果没有,您需要创建自己的函数。

阅读Aaron Bertrand的