我的表格值如下
StudentID | Name | Subscribed Subject |
101 |John | Maths, Bio, Zoo |
102 |Mary | Bio, Zoo |
我想按如下方式检索信息
StudentID | Name | Subscribed Subject |
101 |John | Maths |
101 |John | Bio |
101 |John | Zoo |
102 |Mary | Bio |
102 |Mary | Zoo |
有人可以帮助我吗?不使用游标。
答案 0 :(得分:1)
答案 1 :(得分:0)
试试这段代码
SET @STRSQL = 'SELECT ''' + REPLACE(Subscribed_Subject, ',',
''' ,''') + ''''
DECLARE @tbl TABLE
(
col1 VARCHAR(100)
)
将数据插入临时表,然后尝试从临时表中选择。
INSERT INTO @tbl
EXECUTE ( @STRSQL
)
答案 2 :(得分:0)
您可以使用以下查询来实现此功能。
SELECT A.[StudentID],
Split.a.value('.', 'VARCHAR(100)') AS String
FROM (SELECT [StudentID],
CAST ('<M>' + REPLACE(Subscribed, ',', '</M><M>') + '</M>' AS XML) AS String
FROM Student) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
为了您的快速参考,我包括sql小提琴。