QUERY в сочетании с IMPORTRANGE неправильно сортирует акцентированные значения

Как указано в заголовке, предположим, что у меня есть spreadsheet со следующими значениями:

B
C
A
Š
Ť
Á

Затем я импортирую значения из этой электронной таблицы, используя QUERY и IMPORTRANGE, в другую spreadsheet, точную функцию:

=QUERY(IMPORTRANGE("<spreadsheet_id>"; "List 1!A:B"); "SELECT * WHERE Col1!='' ORDER BY Col1";-1)

Результат, который я получаю, таков:

A
B
C
Á
Š
Ť

Таким образом, ORDER BY работает отдельно с буквами без ударения и с ударением, но не вместе, результат, который я ожидаю, таков:

A
Á
B
C    
Š
Ť

Это делает его бесполезным для меня. При попытке упорядочить их вручную данные искажаются (переходят в совсем другие строки, порядок тоже не правильный. Проверил, правильно ли выставлен язык в настройках.

Когда я немного погуглил, некоторые ссылки обращались к разным SQL (например, MySQL) COLLATE UNICODE, но это не работает.

Любые идеи?


person quapka    schedule 09.10.2017    source источник
comment
Вам нужна таблица для преобразования всех символов с акцентом в обычные символы. На данный момент ORDER BY работает как положено. Код для ваших персонажей A B C Á Š Ť - это 65 66 67 193 352 356 Связано: stackoverflow.com/a/35651656   -  person TheMaster    schedule 09.10.2017
comment
Спасибо, но это звучит как слишком много работы, если учесть тот факт, что обычный порядок данных работает.   -  person quapka    schedule 09.10.2017


Ответы (1)


Проблема в том, что query вызывает совершенно другой язык, который не обязательно ведет себя как другие функции Таблиц, такие как sort. Поскольку sort делает то, что вы хотите, используйте его вместо order by в запросе:

=SORT(QUERY(IMPORTRANGE(...); "SELECT * WHERE Col1!=''); 1; True) 

сортирует вывод запроса по первому столбцу (1) по возрастанию (True). Выход

A
Á
B
C
Š
Ť
person Community    schedule 10.10.2017
comment
Отлично, я удивлен, что не наткнулся на это сам, учитывая, сколько времени я потратил на это. Наверное попал в ORDER BY решение. Спасибо. - person quapka; 10.10.2017