【问题标题】:Get values from comma separated string [duplicate]从逗号分隔的字符串中获取值[重复]
【发布时间】:2019-05-08 03:55:57
【问题描述】:

我使用的是 SQL Server 2012 - 不幸的是,STRING_SPLIT 功能在这个版本中没有实现。

我的问题是:我有一个字符串 @cRECE_STA = 'A,B,C' - 想从该字符串中获取值,例如:

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

我需要这个,因为这些值稍后会被一一插入到表中。如何做到这一点?

【问题讨论】:

标签: sql-server tsql sql-server-2012


【解决方案1】:

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

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;

Demo

如果没有,您需要创建自己的 STRING_SPLIT() 函数。

【讨论】:

    猜你喜欢
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2017-07-22
    • 2016-05-21
    • 2014-03-22
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多