В SQL, как я могу дать один соответствующий столбец приоритет над другим?

Я попробовал несколько вещей, но я рисую пустым. Вот мой запрос:

SELECT * 
    FROM Companies 
WHERE 
    Symbol LIKE 'ZY%' OR 
    Name LIKE '%ZY%' 
ORDER BY Symbol ASC
LIMIT 2;

В основном я хочу, чтобы "ZY" соответствовал (ZNGA, Zynga Inc), прежде чем он совпадет (HALO, Halozyme Therapeuti...).

Очевидно, что причиной заказа является эта часть запроса:

ORDER BY Symbol

Я что-то упускаю здесь очевидное?

2 ответа

Решение

Вам просто нужно добавить его в пункт Order By

SELECT * FROM Companies WHERE Symbol LIKE 'ZY%' OR Name LIKE '%ZY%' 
ORDER BY 
  (CASE WHEN Symbol LIKE 'ZY%' THEN 1
        WHEN Name LIKE '%ZY%' THEN 2
        END),
Symbol ASC;

Не уверен, что это то, что вы ищете, но...

ORDER BY CASE WHEN Symbol LIKE 'ZY%' THEN Symbol ELSE Name END ASC
Другие вопросы по тегам