2016-10-10 1 views
0

現在価値MS SQLで区切られたPIPEを使用して、列に変換し

すべて(1列)

-- 

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のように別の列に格納する必要があります。ヘッダーはIDとキーの値は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 –

関連する問題