Игнорировать столбец предложения where, когда null

У меня есть один SQL, где я хочу заказать его в таком предложении, когда одно из предложений упорядочивания - NUll, тогда оно должно пропустить его и перейти к следующему предложению упорядочения

Добро пожаловать в SO. Некоторым людям может быть трудно понять, что вы имеете в виду, отвечая на подобные вопросы. В вопросах, связанных с SQL, почти ВСЕГДА лучше размещать «вот данные, которые у меня есть сейчас» и «вот как я хочу, чтобы они выглядели, когда мой запрос выполняется успешно, пара таблиц. Пожалуйста, не публикуйте скриншоты для данных. , на случай, если кто-то захочет протестировать с ним

Caius Jard 10.09.2018 10:25

Как условие заказа может быть нулевым? Покажите, пожалуйста, пример. Вы имеете в виду, что значение равно NULL, как в order by col1, col2, а в некоторых записях col1 имеет значение NULL? Но где же тогда их заказывать? Если вы имеете в виду это, то также покажите некоторые образцы данных и ожидаемый результат.

Thorsten Kettner 10.09.2018 10:31

Еще одна вещь: задавая вопросы по SQL, вы должны (почти) всегда также отмечать запрашиваемую СУБД (MySQL, SQL Server, Oracle или ...), потому что диалекты SQL продуктов различаются.

Thorsten Kettner 10.09.2018 10:35
1
3
40
2

Ответы 2

вариант использования, когда для заказа

order by case when val is not null then yourdeseired
         else val end asc

или вы можете использовать coalesce

order by COALESCE(col1, col2,999999) //here if both column is null then its order value will be 999999 otherwise it will order according to 1st non null column wise 

@Nick, пожалуйста, скажите мне, где вы видели копию?

Zaynul Abadin Tuhin 10.09.2018 11:06

@Nick не могу я использовать ту же функцию, если мое объяснение другое объяснение человека ??? полностью не согласен с тем, что любой человек может использовать функцию, и я не смогу использовать эту функцию с объяснением

Zaynul Abadin Tuhin 10.09.2018 11:17

И вдруг кто-то вставляет значение 1000000, и заказ не работает ... "Безопасные" константы, используемые для обеспечения функциональности, немного небезопасны.

jarlh 10.09.2018 11:18

Я не думаю, что ваше объяснение так уж отличается. Но сейчас я сойду с лошади.

Nick 10.09.2018 11:26

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

SELECT * FROM table
ORDER BY firstcolumn, COALESCE(second_column_might_be_null, thirdcolumn), thirdcolumn

Другие вопросы по теме