Почему SQL DISTINCT не работает с ORDER BY CAST? - PullRequest
2 голосов
/ 17 марта 2010

Включение DISTINCT в запрос SQL, который также использует ORDER BY CAST(thecolumn AS int), как показано здесь , кажется, удаляет эту функцию сортировки.

По какой причине они не могут работать вместе? (Использование sqlite с C api)

Спасибо.

EDIT :
Начинается с -

sprintf(sql, "SELECT DISTINCT rowX FROM TableX Order By Cast(rowX As int) LIMIT 150 OFFSET %s;", Offset);

rowX - это тип CHAR (5)

СЕЙЧАС :

sprintf(sql, "Select rowX FROM(Select Distinct rowX From TableX)t Order By Cast(rowX As int) LIMIT 150 OFFSET %s;", Offset);

Ответы [ 2 ]

2 голосов
/ 17 марта 2010

Я использовал следующее с sqlite, и сортировка работала нормально:

Select Distinct thecolumn
From your_table
Order By Cast(thecolumn As int)

Вы пытались поместить DISTINCT в подзапрос?

Select thecolumn
From
(
  Select Distinct thecolumn
  From your_table
) t
Order By Cast(thecolumn As int)

Я бы ожидал, что это сработает.


Еще один способ:

Select thecolumn
From
(
  Select Distinct Cast(thecolumn As int) As thecolumn
  From your_table
) t
Order By thecolumn
0 голосов
/ 18 августа 2017

Это очень поздно, но порядок должен соответствовать списку выбора именно так:

select distinct cast(column as int)
from table
order by cast(column as int)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...