2011-03-17 27 views
1

我有地址:如何從分隔文本整數

ALKOŅU 3-20; 
M.LUBŠNAS 16V-9; 
STIEBRU 6-22; 
ANDREJA UPĪĀA IELA 16-2; 
MISNKAS 4 -115; 
CISKADI,BAZNICAS 4; 

它是如何能夠在SQL中的第一文本部分(區)的整數(房子和平板號碼)分開?

+0

看看字符串函數:http://msdn.microsoft.com/en-us/library/ms181984%28v=sql.90%29.aspx。 CHARINDEX和SUBSTRING將成爲你的朋友 – 2011-03-17 07:57:48

+0

@ralf - CHARINDEX不會削減它 – RichardTheKiwi 2011-03-17 08:03:24

回答

3

假設斷點總是第一個數字,則

SELECT RTRIM(LEFT(col, PATINDEX('%[0-9]%', col + '0') -1)) as District, 
     STUFF(col, 1, PATINDEX('%[0-9]%', col + '0') -1, '') as HouseAndFlat 
FROM ... 

例如

with t(col) as (
select 
'ALKOŅU 3-20' union all select 
'M.LUBŠNAS 16V-9' union all select 
'STIEBRU 6-22' union all select 
'ANDREJA UPĪĀA IELA 16-2' union all select 
'MISNKAS 4 -115' union all select 
'CISKADI,BAZNICAS 4') 

SELECT RTRIM(LEFT(col, PATINDEX('%[0-9]%', col + '0') -1)) as District, 
     STUFF(col, 1, PATINDEX('%[0-9]%', col + '0') -1, '') as HouseAndFlat 
FROM t 
+0

哇。有用!萬分感謝! – vovkjn 2011-03-17 08:05:33

+0

是的,我試過了,但它被拒絕:)現在它工作! – vovkjn 2011-03-17 08:32:52

相關問題