Sqlite

Order BY Customized - Char by Char

  • March 7, 2018

我的目標是通過自定義排序對文本列進行排序。例如,ADBC而不是通常的ABCD.

使用此自定義排序,行將按以下方式排序

ADAGIO
ABACUS
DICE
BEE

因為 D 在 B 之前。

如果我需要對一個字母的文本進行排序,這很容易:

SELECT * FROM my_db
ORDER BY case when text_plain = 'A' then 1
             when text_plain = 'D' then 2
             when text_plain = 'B' then 3
             when text_plain = 'C' then 4
             else 5
        end asc

但是文本包含多個字元。這可行嗎?

在這種情況下,我使用的是 Sqlite。

SQLite 的 C API 具有創建自定義排序規則的功能。

SQLiteStudio 允許您以任何受支持的腳本語言創建此類排序規則。

引用自:https://dba.stackexchange.com/questions/199576