2016-10-10 6 views
0

Текущее значениеПреобразовать в колонку с помощью разделителями ТРУБУ в MS SQL

Все (одна колонка)

-- 

43 | 00043 | 22/09/2016 | Ooredoo - AuU TX | Raj singh 

Я хочу, чтобы это должно быть в отдельной колонке, как приведено ниже

ID Key Date  Company     Owner 

43 00043 22/09/2016 Ooredoo - AuU TX   Raj singh 
+0

Вы имеете в виду, что все значения хранятся в столбце? –

+0

нет, каждое значение должно храниться в разных столбцах, например, для 43 его заголовок - это идентификатор, а значение ключа - 00043 и т. Д. И т. Д. – Somashekhar

+0

Я имею в виду, что сейчас это один столбец. –

ответ

0

Вы можете для этого сделайте следующее и объявите разделитель в начале. Вот пример для этого:

DECLARE @Delimiter VARCHAR(40) 
SET @Delimiter = '|' 
;WITH CTE AS 
(
    SELECT 
     CAST('<M>' + REPLACE([ColName], @Delimiter , '</M><M>') + '</M>' AS XML) 
     AS [ColName XML] 
    FROM [Table] 
) 
SELECT 
    [ColName XML].value('/M[1]', 'VARCHAR(40)') As [ID], 
    [ColName XML].value('/M[2]', 'VARCHAR(40)') As [Key], 
    [ColName XML].value('/M[3]', 'VARCHAR(40)') As [Date], 
    [ColName XML].value('/M[4]', 'VARCHAR(40)') As [Company], 
    [ColName XML].value('/M[5]', 'VARCHAR(40)') As [Owner] 
FROM CTE 
+0

Большое спасибо. Его работа прекрасна для меня :) – Somashekhar

+0

Рад узнать. Не забудьте отметить как ответ: D –