Sql server 从逗号分隔的字符串中获取值
我正在使用SQL Server 2012-不幸的是,此版本中未实现字符串分割函数 我的问题是:我有一个字符串@cRECE_STA='a,B,C'-希望从该字符串中获得如下值: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
+------+
| 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的