gpt4 book ai didi

sql-server - 在 MS SQL 中订购街道地址

转载 作者:行者123 更新时间:2023-12-03 16:34:55 27 4
gpt4 key购买 nike

我在使用 SQL 查询时遇到了一些问题。我需要按街道地址对 select 语句的结果进行排序。

我开始于:

SELECT * FROM addressTable ORDER BY streetAddress ASC

但这会返回

1 bob street 
10 bob street
2 bob street

为了纠正这个问题,我将声明更改为:

SELECT * FROM database ORDER BY LEN(StreetAddress), StreetAddress ASC

我认为这是理想的,因为它现在正在回归:

1 bob street
2 bob street
10 bob street

但是我没有预料到公寓和公寓号码的格式为 1a 1b 210a 210b 等,所以我发现我的查询会像这样返回:

210 bob street
211 bob street
212 bob street
213 bob street
210a bob street
210b bob street

代替:

210 bob street
210a bob street
210b bob street
211 bob street
212 bob street
213 bob street

我可以使用什么最简单的查询来实现这一点?

最佳答案

试试这个:

ORDER BY CAST(LEFT(StreetAddress, PATINDEX('%[^0-9]%', StreetAddress)  - 1) AS INT),
StreetAddress

想法是提取前导数字值,将其转换为 INT,按它排序,然后按字段本身排序。如果 StreetAddress 值与发布的值一样,它应该可以工作。

关于sql-server - 在 MS SQL 中订购街道地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36883693/

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