Как поставить результат из столбца в верхней части результата? - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть этот sql:

SELECT x, y FROM table WHERE x = 'a' OR y = 'a'

В результате он покажет что-то вроде этого:

ПРИМЕЧАНИЕ: буквы ниже представляют значение, возвращаемое из столбца x и y.

a = x

b = y

a
b
b
a
b

Сначала я хочу получить результаты из столбца x.Вот так:

a
a
b
b
b

Возможно ли это?Единственный способ, который я нашел, это сделать два sql для обоих столбцов, а затем использовать UNION;

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Вы можете использовать условную логику в group by:

SELECT x, y
FROM table
WHERE x = 'a' OR y = 'a'
ORDER BY (x = 'a') DESC;

MySQL обрабатывает логическое значение как целое число, с 0 для false и 1 для true.Следовательно DESC, поэтому истинные значения являются первыми.

0 голосов
/ 24 сентября 2019

Ниже приведен ответ о том, что вы используете SQL Server.

SELECT x FROM table WHERE x = 'a'
union all
SELECT y FROM table WHERE y = 'a'
order by 1

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

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