我有一个简单的问题,我无法找到解决方案,我希望StackOverflow上的某个人可以提供帮助。
我目前有一个示例查询,如下所示
SELECT ID
, ColumnName
FROM Table
如果我运行此查询,我会得到以下结果:
==================
ID | ColumnName
------------------
1 | One_Two_Three
2 | Four_Five_Six
==================
我之后的结果如下:
========================
ID | Col1 | Col2 | Col3
------------------------
1 | One | Two | Three
2 | Four | Five | Six
========================
感谢您的同意。
答案 0 :(得分:0)
看一下这个例子
DECLARE @Table1 TABLE
([ID] int, [ColumnName] varchar(13))
INSERT INTO @Table1
([ID], [ColumnName])
VALUES
(1, 'One_Two_Three'),
(2, 'Four_Five_Six')
;WITH Vals AS (
SELECT *,
CAST('<d>' + REPLACE([ColumnName], '_', '</d><d>') + '</d>' AS XML) ColumnValue
FROM @Table1
)
SELECT v.*,
A.B.value('.', 'varchar(max)')
FROM Vals v CROSS APPLY
ColumnValue.nodes('/d') A(B)