【问题标题】:SQL query to extract a number from a text从文本中提取数字的 SQL 查询
【发布时间】:2015-03-13 12:32:47
【问题描述】:

我需要从列的内容中提取一个数字。该列包含一些地址数据和一个数字。

例如:

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 查询可以实现这一点?

【问题讨论】:

    标签: mysql sql-server


    【解决方案1】:

    这是给甲骨文的。我认为这也适用于 MS SQL Server。

    select upper(address) address, 
    trim(both from translate(upper(address),'!~@#$%^&*()`1234567890-=_+[]{};"/?.>,<',' ')) characters,
    trim(both from translate(upper(address),'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@#$%^&*();":[]{},.<>/?',' ')) 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 2023-02-25
      • 1970-01-01
      • 2015-08-24
      相关资源
      最近更新 更多