gpt4 book ai didi

sqlite - 特别排序特殊字符?

转载 作者:行者123 更新时间:2023-12-03 17:13:53 25 4
gpt4 key购买 nike

我有一个表名 contacts其中有列 [ "id","name","age" ] .我需要按名称升序获取所有联系人顺序。我为它编写了以下查询:

Select * from contacts order by name collate nocase asc;

我从上述查询中得到的结果如下:
1. 11 | #ax Nene | 21
1. 21 | 123 Ray | 22
1. 33 | maxy Wel | 25
1. 41 | Max Vele | 23
1. 53 | Nam sing | 25

上面的排序很好,但我希望以特殊字符 [#,$ 或任何其他非字母] 开头的名称位于结果的底部而不是顶部。我应该在查询中修改什么以获得所需的结果。

注意:我正在使用sqlite。

最佳答案

你必须在前面加上一些像 ~ 这样的字符(按字母排序)到任何这样的字符串。
当您仅在 ORDER BY 子句中执行此操作时,它仅影响排序而不影响返回值:

SELECT *
FROM contacts
ORDER BY CASE WHEN name GLOB '[A-Za-z]*'
THEN name
ELSE '~' || name
END COLLATE NOCASE;

( COLLATE NOCASE 使排序不区分大小写。)

关于sqlite - 特别排序特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27392791/

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