В SQL (не только в SQLite) единственный способ всегда возвращать строки в заданном порядке - это предложение SQL ORDER BY ...
.Таким образом, короткий ответ: «Нет», простого способа возврата строк в порядке, заданном содержимым предложения IN (...)
, не существует.
Вы могли используйте общее табличное выражение (CTE) для определения порядка сортировки, но это обычно не стоит проблем.Это не то же самое, что упорядочение по содержимому предложения IN (...)
, но выглядит одинаково.(Вы упорядочиваете по порядку сортировки, указанному в CTE.)
with ordered_words as (
select 1 as sort_order, 'bbb' as WordAton union
select 2, 'aaa2' union
select 3, 'ccc' union
select 4, 'aaa1'
)
select t.WordAton
from tWords t
join ordered_words o on t.WordAton = o.WordAton
where t.WordAton in ('bbb', 'aaa2', 'ccc', 'aaa1')
order by o.sort_order;