В 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