2015-03-13 96 views
-2

我需要從列的內容中提取數字。該列包含一些地址數據和一個數字。SQL查詢從文本中提取數字

例如:

Col X 
----- 
Address ABCD 9889030292 
adress OPQR 
9834347473 
ADDR HIJK 2382982381 
3, AST STREET, 4545009234 
BNG 3483472234 

所需的輸出:

Col Result 
---------- 
9889030292 
9834347473 
2382982381 
4545009234 
3483472234 

哪個SQL查詢實現這一點?

回答

0

這是針對Oracle的。我認爲這也適用於MS SQL Server。

select upper(address) address, 
trim(both from translate(upper(address),'[email protected]#$%^&*()`1234567890-=_+[]{};"/?.>,<',' ')) characters, 
trim(both from translate(upper(address),'[email protected]#$%^&*();":[]{},.<>/?',' ')) numbers 
from (
select 'Col X' address from dual 
union all 
select 'Address ABCD 9889030292' from dual 
union all 
select 'adress OPQR' from dual 
union all 
select '9834347473' from dual 
union all 
select 'ADDR HIJK 2382982381' from dual 
union all 
select '3, ast street, 4545009234' from dual 
union all 
select 'BNG 3483472234' from dual);