gpt4 book ai didi

sql - postgreSQL ORDER BY 文本以 10 而不是 1 开头

转载 作者:行者123 更新时间:2023-11-29 12:52:15 24 4
gpt4 key购买 nike

SELECT
programs.name AS program,
program_categories.name AS category
FROM programs
INNER JOIN program_categories
ON program_category_id = program_categories.id
ORDER BY
program_categories.name,
programs.name

上面的代码应该提供以下结果(我认为):

Module 1:   |   foo
Module 1: | foo
Module 2: | foo
Module 3: | foo
Module 4: | foo
Module 5: | foo
Module 6: | foo
Module 7: | foo
Module 8: | foo
Module 9: | foo
Module 10: | foo
Module 11: | foo
Module 12: | foo
Module 13: | foo

而是产生:

Module 10:  |   foo
Module 11: | foo
Module 12: | foo
Module 13: | foo
Module 1: | foo
Module 1: | foo
Module 2: | foo
Module 3: | foo
Module 4: | foo
Module 5: | foo
Module 6: | foo
Module 7: | foo
Module 8: | foo
Module 9: | foo

有人介意解释一下是什么原因导致了我似乎不知道的这种现象吗?以及如何修复/解决它?

最佳答案

一个简单的方法——如果 category 中的初始字符串都相同——首先按长度排序,然后按值排序:

ORDER BY LENGTH(category), category, program

关于sql - postgreSQL ORDER BY 文本以 10 而不是 1 开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51107646/

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