gpt4 book ai didi

sql - 是否可以在 postgreSQL 中按子字符串排序?

转载 作者:行者123 更新时间:2023-11-29 11:53:36 34 4
gpt4 key购买 nike

我有一个名为 widgets 的表,其中有一个名为 version 的字符串列。

版本数据采用句点分隔的字符串格式,类似于语义版本控制。例如“1.2.4”

当我执行传统的 ORDER BY widgets.version 时,我得到以下顺序

+--------------+
| Widgets |
+----+---------+
| id | version |
|----|---------|
| 1 | 1.3.2 | <- This is fine
| 3 | 10.1.2 | <- This should be last, since 10 > 4
| 2 | 4.5.7 | <- This should be second, since 4 < 10
+----+---------+

如何更新我的查询,以便按版本 pt 1、版本 pt 2、版本 pt 3 返回顺序?

最佳答案

最简单的方法是将版本字符串转换为整数数组,然后对该数组进行排序:

select id, 
version
from widgets
order by string_to_array(version, '.')::int[]

请注意,如果版本包含非数字值,这将失败。

关于sql - 是否可以在 postgreSQL 中按子字符串排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36282327/

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