Как отсортировать столбец VARCHAR в PostgreSQL, содержащий звездочки - PullRequest
0 голосов
/ 10 декабря 2018
select folder_name  -- varchar
from ags_secured_endpoint_definition;

возвращает:

Utilities
Utilities
UtilityServices
*** ROOT ***
Midstream
EP
EP
EP
EP
EP
EP
Midstream
Culture
Culture
Culture
Culture
Culture
Culture
CustomUtilities
Basin
Basin
EP
EP
EP

отсортировано Я получил неожиданный результат ("* ROOT *"):

select folder_name 
from ags_secured_endpoint_definition
ORDER BY folder_name;

возвращает:

Basin
Basin
Culture
Culture
Culture
Culture
Culture
Culture
CustomUtilities
EP
EP
EP
EP
EP
EP
EP
EP
EP
Midstream
Midstream
*** ROOT ***
Utilities
Utilities
UtilityServices

1 Ответ

0 голосов
/ 10 декабря 2018

Это зависит от вашей сортировки, которую вы можете видеть с помощью

SHOW lc_collate;

Очевидно, что ваша сортировка игнорирует пробелы и звездочки при сортировке, поэтому *** ROOT *** сортируется как ROOT.

Если вам это не нравится, вы можете выбрать другое сопоставление, например, двоичное:

SELECT folder_name 
FROM ags_secured_endpoint_definition
ORDER BY folder_name COLLATE "C";
...