Подтвердить что ты не робот

SQL Query - как фильтр с нулевым или не равным нулю

Я хочу отфильтровать запись....

Если statusid имеет значение null, отфильтруйте запись (где statusId не равно null)

Если statusid не является нулевым, отфильтруйте запись, в которой statusid равен указанному статусу.

Как мне это сделать?

4b9b3361

Ответ 1

Так же, как вы сказали

select * from tbl where statusid is null

или

select * from tbl where statusid is not null

Если ваш statusid не является нулевым, тогда он будет выбран просто отлично, если у вас есть реальное значение, нет необходимости в какой-либо логике "если", если это то, о чем вы думали

select * from tbl where statusid = 123 -- the record(s) returned will not have null statusid

если вы хотите выбрать нулевое значение или значение, попробуйте

select * from tbl where statusid = 123 or statusid is null

Ответ 2

Как насчет statusid = statusid. Null никогда не равен нулю.

Ответ 3

WHERE something IS NULL

и

WHERE something IS NOT NULL

Ответ 4

установить ansi_nulls off идти выберите * из таблицы t внутреннее соединение otherTable o на t.statusid = o.statusid идти установить ansi_nulls на идти

Ответ 5

Я думаю, это может сработать:

select * from tbl where statusid = isnull(@statusid,statusid)

Ответ 6

Где бы вы ни пытались проверить значение NULL для столбца, вы должны использовать IS NULL и НЕ ЯВЛЯЕТСЯ

Вы не должны использовать = NULL или == NULL


Пример (NULL)

select * from user_registration where registered_time IS NULL 

вернет строки с registered_time значением NULL


Пример (NOT NULL)

select * from user_registration where registered_time IS NOT NULL 

вернет строки с registered_time значением NOT NULL

Примечание. Ключевое слово NULL, NOT NULL и is: not case sensitive.