【发布时间】:2017-09-18 09:21:07
【问题描述】:
我有以下 sql 过程:
DECLARE @temp table
(
Column1 nvarchar(1000)
)
INSERT @temp (Column1)
SELECT fld_4
FROM MyTable
WHERE fld_1 = @param1 and
fld_2 = @param2 and
fld_3 = @param3
SELECT ROW_NUMBER() OVER(ORDER BY Column1 ASC) AS Number, Split.a.value('.', 'VARCHAR(100)') AS Result
FROM
(
SELECT Column1,
CAST ('<M>' + REPLACE(Column1, ';', '</M><M>') + '</M>' AS XML) AS Result
FROM @temp
) AS A CROSS APPLY Result.nodes ('/M') AS Split(a);
MyTable 的结构:
| fld_1 | fld_2 | fld_3 | fld_4 | ... | fld_9 | ...|
其中 fld_4 包含如下内容:
-9;-9;-1;-9;-9;-9;-9;-9;-1;-9;-9;-9;-9;-9;-9;-9;-9;-9;-1;-9;-9;-9;-9;-9;-9;-9;-9;-9;-1;-9;-1;-9;-9;-9;-1;-9;-9;-9;-9;-9;-9;-1;-1;-1;-1;-9;-1;-1;-9;-9;-9;-9;-1;-9;-1;-9;-9;-9;-1;-9;-1;-9;-1;-9;-9;-9;-9;-1;-9;-9;-1;-1;-9;-1;-1;0000;FFF8;-9;-9;-9;-1;-9;-1;-9;FFF6;-9;-1;-9;-1;-9;-1;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9;-9
我的过程返回一个具有这种结构的表:
| Number | Result |
| 1 | -9 |
| 2 | -9 |
| 3 | -1 |
| ... | ... |
现在,我想达到以下结果:
| Number | Result | NewColumn |
| 1 | -9 | Value of fld_9 |
| 2 | -9 | Value of fld_9 |
| 3 | -1 | Value of fld_9 |
| ... | ... | Value of fld_9 |
有什么建议吗?
【问题讨论】:
标签: sql sql-server stored-procedures sql-server-2012