Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL中逗号分隔值后的第三位_Sql Server_Sql Server 2008_Sql Server 2012 - Fatal编程技术网

Sql server SQL中逗号分隔值后的第三位

Sql server SQL中逗号分隔值后的第三位,sql-server,sql-server-2008,sql-server-2012,Sql Server,Sql Server 2008,Sql Server 2012,我有一个字符串,我想要逗号后的第三位单词 id String 1 India,Pakistan,China,Turkey,England 2 USA,UK,Pakistan,India 3 China,North Korea,Turkey,Iran 要求的结果将是 id String 1 China 2 Pakistan 3 Turkey 所需输出可通过以下方式实现: 语法: SELECT COALESCE(LTRIM(CAST((

我有一个字符串,我想要逗号后的第三位单词

id    String
1     India,Pakistan,China,Turkey,England
2     USA,UK,Pakistan,India
3     China,North Korea,Turkey,Iran
要求的结果将是

id    String
1     China
2     Pakistan
3     Turkey

所需输出可通过以下方式实现:

语法:

SELECT COALESCE(LTRIM(CAST(('<X>'+REPLACE(<column_name>,',' ,'</X><X>')+'</X>') AS XML).value('(/X)[3]', 'varchar(100)')), '') AS String
FROM <table_name>
有关表的自定义查询:

SELECT id, 
    COALESCE(LTRIM(CAST(('<X>'+REPLACE(String,',' ,'</X><X>')+'</X>') AS XML).value('(/X)[3]', 'varchar(100)')), '') AS String
FROM table_1
您可以像这样使用xml值

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

你想要什么样的答案?排在第三位的单词是chaina、巴基斯坦和韩国还是土耳其?@Hacker Hate排在第三位的单词是中国、巴基斯坦和土耳其