ORDER BY в DB2 SQL Query для сопоставления сортировки в Excel - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть запрос DB2 SQL, извлекающий поле идентификатора (назовем его [ID]), который должен быть отсортирован в порядке возрастания сортировки Excel, чтобы ускорить поиск формул, которые происходят позже в процессе моего рабочего процесса..

SELECT [ID] FROM [TABLE] ORDER BY [ID]

Моя проблема заключается в том, что код DB2 сортирует данные по строкам '01 ~ 010000 ~ AAAAAB ... ', '01 ~ 010000 ~ AAAAAC ...' и т. Д.top, а excel сортирует их по низу, ниже строк '01 ~ 010000 ~ 000001 ... ', и это то, что мне нужно для корректной работы моих формул поиска.

Так что DB2 сортирует следующим образом-

01~010000~AAAAAB~100000000000~01~01  
01~010000~AAAAAC~000000000001~01~01  
01~010000~ZAAAAA~000000000001~01~01  
01~010000~000001~000000000001~01~01  
01~010000~000001~000000000001~01~01  

И Excel сортирует следующим образом -

01~010000~000001~000000000001~01~01  
01~010000~000001~000000000001~01~01  
01~010000~AAAAAB~100000000000~01~01  
01~010000~AAAAAC~000000000001~01~01  
01~010000~ZAAAAA~000000000001~01~01  

Есть ли что-то, что я могу сделать с моим DB2 SQL в ORDER BY, чтобы соответствовать тому, как Excel сортирует данные?

РЕДАКТИРОВАТЬ: Чтобы ответить на вопрос ниже, я боюсь, что у меня нет всей этой технической информации.Я думаю это z / os, но я не знаю ответа ни на что из этого другого.Каждый раз, когда мне приходилось искать ответы на вопросы о DB2 SQL в Google, примеры работали, поэтому я думаю, что все, что использует остальной мир, это то, что у меня есть?

1 Ответ

1 голос
/ 25 сентября 2019

Похоже, что используется порядок сортировки последовательности сортировки EBCDIC.
Попробуйте выполнить сортировку по функции COLLATION_KEY с некоторой соответствующей константой имени сопоставления в качестве 2-го аргумента.

...