相关疑难解决方法(0)

将逗号分隔的字符串转换为单独的行

我有一个像这样的SQL表:

| SomeID         | OtherID     | Data
+----------------+-------------+-------------------
| abcdef-.....   | cdef123-... | 18,20,22
| abcdef-.....   | 4554a24-... | 17,19
| 987654-.....   | 12324a2-... | 13,19,20
Run Code Online (Sandbox Code Playgroud)

是否有一个查询,我可以执行查询,如SELECT OtherID, SplitData WHERE SomeID = 'abcdef-.......'返回单个行,如下所示:

| OtherID     | SplitData
+-------------+-------------------
| cdef123-... | 18
| cdef123-... | 20
| cdef123-... | 22
| 4554a24-... | 17
| 4554a24-... | 19
Run Code Online (Sandbox Code Playgroud)

基本上将逗号中的数据拆分成单独的行?

我知道将comma-separated字符串存储到关系数据库听起来很愚蠢,但消费者应用程序中的正常用例使得这非常有用.

我不想在应用程序中进行拆分,因为我需要分页,因此我想在重构整个应用程序之前探索选项.

这是SQL Server 2008(非R2).

t-sql sql-server split comma

215
推荐指数
10
解决办法
41万
查看次数

将值拆分为多行

可能重复:
将逗号分隔的字符串转换为单独的行

我有一个存储过程的以下输出,并想知道将值拆分为多行的最佳方法.

reference   name                            subjects       subjectstitle
LL9X81MT    Making and Decorating Pottery   F06,F27,F38       NULL
Run Code Online (Sandbox Code Playgroud)

我需要在逗号处修剪主题字段并将信息复制到三行,以便数据如下所示.

reference   name                            subjects       subjectstitle
LL9X81MT    Making and Decorating Pottery   F06       NULL
LL9X81MT    Making and Decorating Pottery   F27       NULL
LL9X81MT    Making and Decorating Pottery   F38       NULL
Run Code Online (Sandbox Code Playgroud)

我正在使用MS SQL Server 2008来设置这些SP,并且需要一些关于如何分割主题字段的帮助.

谢谢,

sql sql-server stored-procedures sql-server-2008

6
推荐指数
2
解决办法
5万
查看次数