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

时间:2018-12-06 12:37:21

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

我正在使用SQL Server 2012-不幸的是,此版本未实现 if(RemoteConfigSingleton.getInstance().isChristmasMode()){ toolbar.setBackgroundResource(R.color.christmas); Christmas stuff... } } 功能。

我的问题是:我有一个字符串STRING_SPLIT-想从该字符串中获取值,例如:

@cRECE_STA = 'A,B,C'

我需要这个,因为这些值以后会一一插入到表中。该怎么做?

1 个答案:

答案 0 :(得分: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() 函数。