SQL Server用逗号分隔[重复]

Posted

技术标签:

【中文标题】SQL Server用逗号分隔[重复]【英文标题】:SQL Server split by comma [duplicate] 【发布时间】:2012-02-21 01:47:44 【问题描述】:

我有一个关于在 T-SQL 中拆分列值的问题。 我有

Address_col

Nevada,USA
Tokyo,Japan
Hanoi,Vietnam

我想用逗号将值拆分为

Address_col     Country

Navada          USA
Tokyo           Japan
Hanoi           Vietnam

我该怎么做?

【问题讨论】:

***.com/questions/314824/… 【参考方案1】:

如果你只有两个部分,那么这是我能想到的最简单的。

选择 SUBSTRING(Address_col,1,CHARINDEX(',',Address_col)-1) 作为 Address_col, SUBSTRING(Address_col,CHARINDEX(',',Address_col)+1,LEN(Address_col)) 作为国家

【讨论】:

【参考方案2】:
declare @T table (Address_col varchar(20))

insert into @T values
('Nevada,USA'),
('Tokyo,Japan'),
('Hanoi,Vietnam')

select left(Address_col, charindex(',', Address_col)-1) as Address_col,
       stuff(Address_col, 1, charindex(',', Address_col), '') as Country
from @T

更新: 将字符串拆分为三个部分可以如下所示: 声明@T 表(Address_col varchar(20))

insert into @T values
('Nevada,USA,World'),
('Tokyo,Japan,World'),
('Hanoi,Vietnam,World')

select parsename(C, 3),
       parsename(C, 2),
       parsename(C, 1) 
from @T
  cross apply (select replace(Address_col, ',', '.')) as T(C)

【讨论】:

如果我有 NEVADA,USA,WORLD 我想分成 3 列我该怎么做? @aliasosx - 使用将字符串拆分为三个值的方法更新了答案。请注意,值中不能有任何,.

以上是关于SQL Server用逗号分隔[重复]的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 将三个不同的列连接成逗号分隔且没有重复值

SQL Server 2012 列到单行,用逗号分隔

将充满逗号分隔值的 varchar 传递给 SQL Server IN 函数

PL SQL从用逗号分隔的字符串创建数字数组[重复]

sql server里如何将一组用逗号分隔的字符串分解并插入到另一张表中,比如:11873,27827, 也可能是好多

Sql Server实现多行数据按分组用逗号分隔成一行数据