gpt4 book ai didi

sql - 如何按字母顺序对 SQL 查询进行排序但忽略前导数字?

转载 作者:太空狗 更新时间:2023-10-30 01:47:22 24 4
gpt4 key购买 nike

我无法为我的问题找到正确的查询。我在数据库中有一个表,我需要以非常具体的方式对其进行排序 - 我正在排序的列是一个地址,它以数字开头,但我需要忽略数字对其进行排序。

这是我的数据集:

id  | address
1 | 23 Bridge road
2 | 14 Kennington street
3 | 7 Bridge road
4 | 12 Oxford street
5 | 9 Bridge road

我需要这样排序:

id | address
1 | 7 Bridge road
2 | 9 Bridge road
3 | 23 Bridge road
4 | 14 Kennington street
5 | 12 Oxford street

到目前为止我只得到了这个:

SELECT id, address
FROM propertySearch
Order by address ASC.

谁能帮我解决这个问题?

最佳答案

如果这将始终是那种格式(前导数字,一个空格,然后是地址),那么你可以这样做:

SQL 服务器:

SELECT * FROM YourTable t
ORDER BY SUBSTRING(t.address,CHARINDEX(' ',t.address,1),99)

MySQL:

SELECT * FROM YourTable t
ORDER BY SUBSTRING_INDEX(t.address,' ',-1)

如果格式不固定,可以使用 SQL-Server patindex() :

SELECT * FROM YourTable t
ORDER BY SUBSTRING(t.address,PATINDEX('%[A-z]%',t.address),99)

注意:这是糟糕的数据库设计!!每个值都应正确存储在其自己的列中,例如 STREETCITYAPARTMANT_NUMBER 等,因为如果不这样做,它们就会导致这个.

关于sql - 如何按字母顺序对 SQL 查询进行排序但忽略前导数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38849360/

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