【问题标题】:Postgresql only select letters from a columnPostgresql 只从列中选择字母
【发布时间】:2015-01-20 16:24:37
【问题描述】:

所以我有这个包含街道地址和门牌号码的列,它们都保存在同一列中。

例如:林荫大道 123

现在我想将字母与数字分开,以便通过 select 语句分别得到“Boulevard”和“123”。

我怎样才能做到这一点,使用 reg 表达式?

提前致谢

【问题讨论】:

  • Boulevard 123 South应该返回什么
  • @a_horse_with_no_name 一条选择语句的街道名称和另一条选择语句的门牌号
  • 那么South 部分呢?这是第三要素吗?还是它属于这个数字?还是到第一部分?

标签: sql postgresql split


【解决方案1】:

以下内容对我有用。

select 
    substring(address from '\d+') as street_number, 
    substring(address from '[a-zA-Z\s]+') as street_name 
from addresses

【讨论】:

    【解决方案2】:

    执行此操作的一种方法是使用regexp_split_to_array 按空格分割值:

    SELECT address_arr[1] AS streer_name, address_arr[2] AS street_number
    FROM   (SELECT REGEXP_SPLIT_TO_ARRY(address, ' ') AS address_arr
            FROM   my_table) t
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 2021-12-18
      • 2010-10-28
      • 2020-08-17
      相关资源
      最近更新 更多