通过逗号分隔的SQL Server
问题描述:
我有一个关于在T-SQL中拆分列值的问题。 我通过逗号分隔的SQL Server
Address_col
Nevada,USA
Tokyo,Japan
Hanoi,Vietnam
我想用逗号值拆分
Address_col Country
Navada USA
Tokyo Japan
Hanoi Vietnam
我怎么能这样做?
答
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)
答
如果你只有两个部分,然后这是我能想到的最简单的方法。
选择SUBSTRING(Address_col,1,CHARINDEX( ' 'Address_col)-1)作为Address_col, SUBSTRING(Address_col,CHARINDEX(',',Address_col)+ 1,LEN(Address_col))作为国家
http://stackoverflow.com/questions/314824/t-sql-opposite-to-string-concatenation-how-to-split-string-into-multiple-reco – Kane 2012-01-28 08:47:39