T-SQL多列中的一列选择查询

时间:2014-03-14 09:33:16

标签: tsql split

我有一个简单的问题,我无法找到解决方案,我希望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
========================

感谢您的同意。

1 个答案:

答案 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)

SQL Fiddle DEMO