Sql Server拆分列

时间:2015-06-02 11:32:44

标签: sql-server string-split

我有一个表contact_add。我有一个列包含的城市(MANGALORE-575001)我想要一个查询来拆分SQL服务器中的City和Pincode。如果子串表达式,必须给出开始和长度,这可能因每个城市而不同

实施例

Mangalore-123456 
Kannur-6542 
kochi-78954 
Goa-12

我想要一个查询将名称和密码分成两列,如下所示

city      Pincode 
--------- ------- 
Mangalore 123456 
Kannur    6542 
Kochi     78954 
Goa       12

2 个答案:

答案 0 :(得分:2)

尝试这个:

SELECT 
    CASE WHEN CHARINDEX('-',city)>0 THEN SUBSTRING(city,1,CHARINDEX('-',city)-1) 
         ELSE city end City, 
    CASE WHEN CHARINDEX('-',city)>0  THEN SUBSTRING(city,CHARINDEX('-',city)+1,len(city))  
         ELSE NULL END as pincode
FROM Contact_add

city =第2行的列名

答案 1 :(得分:0)

试试这个......

select substring('MANGALORE-575001',0,CHARINDEX('-','MANGALORE-575001')), substring('MANGALORE-575001',CHARINDEX('-','MANGALORE-575001')+1,len('MANGALORE-575001'))