2017-04-19 2 views
0

Ich habe eine Zeichenfolge und ich möchte 3. Platz nach Komma Wort.dritter Platz nach Komma getrennt Wert in SQL

id String 
1  India,Pakistan,China,Turkey,England 
2  USA,UK,Pakistan,India 
3  China,North Korea,Turkey,Iran 

erforderliche Ergebnis wird

id String 
1  China 
2  Pakistan 
3  Turkey 
+0

, was Sie in Ihrer Antwort wollen? 3. Platz ist Chaina, Pakistan und Korea oder Türkei? – Hacker

+0

@ Hacker Hass 3. Platz Wort ist China, Pakistan und Türkei – Doe

Antwort

0

Erforderliche Ausgabe mit erreicht werden kann,

Syntax:

SELECT COALESCE(LTRIM(CAST(('<X>'+REPLACE(<column_name>,',' ,'</X><X>')+'</X>') AS XML).value('(/X)[3]', 'varchar(100)')), '') AS String 
FROM <table_name> 

Customized Abfrage für die Tabelle in Frage:

SELECT id, 
    COALESCE(LTRIM(CAST(('<X>'+REPLACE(String,',' ,'</X><X>')+'</X>') AS XML).value('(/X)[3]', 'varchar(100)')), '') AS String 
FROM table_1 
1

Sie xml value wie diese verwenden könnte

DECLARE @SampleData AS TABLE 
(
    Id int IDENTITY (1,1), 
    String varchar(200) 
) 

INSERT INTO @SampleData 
VALUES (' India,Pakistan,China,Turkey,England'), ('USA,UK,Pakistan,India'),('China,North Korea,Turkey,Iran') 


;WITH temps AS 
(
    SELECT sd.Id ,CAST('<x>' + replace(sd.String, ',', '</x><x>') + '</x>' as xml) AS String 
    FROM @SampleData sd 
) 
SELECT t.Id, t.String.value('(/x)[3]','varchar(50)') 
FROM temps t 
Verwandte Themen