【问题标题】:SQL Server split by comma [duplicate]SQL Server用逗号分隔[重复]
【发布时间】: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

我该怎么做?

【问题讨论】:

标签: sql-server split


【解决方案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 - 使用将字符串拆分为三个值的方法更新了答案。请注意,值中不能有任何, 或.。
    猜你喜欢
    • 2011-12-27
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 2011-12-25
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多