gpt4 book ai didi

mysql - SQL 查询(排序街道地址)

转载 作者:可可西里 更新时间:2023-11-01 08:16:34 26 4
gpt4 key购买 nike

我有一个街道地址列表,我想按以下顺序排序:

  • 街道 1
  • A 街 27 号
  • 27 号街
  • D 街 30 号
  • D 街 31 号
  • 205 号街道
  • B 街 207 号

当我执行一个简单的 order by street 时,我得到:

Street 1, Street 205, Street 207 B, Street 27 A, Street 27 F, Street 30 D, Street 30 D 

这不是我想要的。

我找不到任何好的例子,这里有一个 here但这恰恰相反。

最佳答案

假设您已将地址表组织成两列 roadhouse_number(后者带有补码),以下查询 (PostgreSQL) 可以解决问题(订购地址独特的道路“The Road”):

SELECT road, house_number from address_table
WHERE road = 'The Road'
ORDER BY CAST(regexp_replace(house_number, '[[:alpha:]]', '') AS INTEGER),
regexp_replace(house_number, '[[:digit:]]', '')

似乎也有一些方法可以用 MySQL 代替正则表达式:How to do a regular expression replace in MySQL?

关于mysql - SQL 查询(排序街道地址),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25245121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com