SQL, WHERE ID = 5, но я хочу, чтобы определенная запись отображалась первой. - PullRequest
1 голос
/ 29 июля 2011

не знаю, как это сделать, но, скажем, у меня есть таблица с кучей предметов, принадлежащих userID 5, я хочу сделать так, чтобы, если я буду искать конкретный предмет от этого пользователя, все его предметы будут отображаться, но искомый элемент появится первым, а остальные элементы последуют.Например:

Items table
-----------
itemID       userID    itemName
1              5       Coffee Mug
2              5       iPhone
3              5       LCD Monitor
4              5       Macbook pro
5              5       Shell

Допустим, я выполняю поиск iPhone, я хочу, чтобы мои результаты возвращали все элементы userID (WHERE userID = 5), но ... Я хочу, чтобы элемент iPhone былв верхней части списка!Спасибо всем за помощь!

Дэмиен

Ответы [ 3 ]

3 голосов
/ 29 июля 2011

РЕДАКТИРОВАТЬ теперь мы больше не ищем «iPhone», мы указываем первый элемент по @ItemID:

ORDER BY 
  CASE WHEN itemID = @ItemID THEN 'a' ELSE 'z' END 
  --, secondary ordering
2 голосов
/ 29 июля 2011
ORDER BY      
   case when Items.itemID = 2 then 0 else 1 end ASC      
   ,Items.itemName ASC
0 голосов
/ 29 июля 2011

Создайте дополнительный столбец для SELECT с инструкцией case, которая равна 0, когда ваше условие выполнено, и 1 в противном случае, а затем ORDER BY that.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...