sql выбрать без сортировки - PullRequest
       7

sql выбрать без сортировки

3 голосов
/ 30 сентября 2010

Я думаю, что это длинный путь, но есть ли способ перечислить SQL-запрос без сортировки ...

например. У меня

select * from items 
where manufacID = 2 
or manufacID = 1
or manufacID = 4

и я не хочу, чтобы они были перечислены в порядке asc или decs, но, как я напечатал ... итак 2,1,4.

Итак, я могу это сделать?

Ответы [ 5 ]

7 голосов
/ 30 сентября 2010

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

SELECT 
  *,
  CASE manufacID
    WHEN 2 THEN 1
    WHEN 1 THEN 2
    WHEN 4 THEN 3
  END AS sortOrder
FROM
  items
ORDER BY
  sortOrder
6 голосов
/ 30 сентября 2010

Да, используйте это:

SELECT * FROM items
WHERE manufacID IN (2, 1, 4)
ORDER BY (manufacID = 2) ASC,
         (manufacID = 1) ASC,
         (manufacID = 4) ASC

Результаты сортируются в порядке, соответствующем условиям.Измените ASC на DESC, чтобы изменить порядок.Это работает только для баз данных, которые допускают условия в предложениях сортировки.

(Примечание: зачем вам это делать?)

5 голосов
/ 30 сентября 2010

Поскольку вы не указали сортировку, записи будут отсортированы в естественном порядке, который зависит от используемой СУБД.Например, в SQL Server порядок не определен.

Вы можете создать заказное значение из следующих значений:

select * from items 
where manufacID in (2, 1, 4)
order by case manufacID
  when 2 then 1
  when 1 then 2
  when 4 then 3
end
1 голос
/ 30 сентября 2010
SELECT * FROM
(
select 1 as sort, * from items 
where manufacID = 2 

union all

select 2 as sort, * from items 
where manufacID = 1

union all

select 3 as sort, * from items 
where manufacID = 4
)
order by sort
0 голосов
/ 30 сентября 2010
select * from items where manufacID = 2 
union all
select * from items where manufacID = 1
union all
select * from items where manufacID = 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...