Ответ 1
Вы имеете в виду что-то вроде:
SELECT COLUMN1, COLUMN2 FROM MY_TABLE WHERE COLUMN1 = 'Value' OR COLUMN1 IS NULL
?
Как вы пишете оператор SELECT, который возвращает только строки, где значение для определенного столбца равно null?
Вы имеете в виду что-то вроде:
SELECT COLUMN1, COLUMN2 FROM MY_TABLE WHERE COLUMN1 = 'Value' OR COLUMN1 IS NULL
?
Я не уверен, отвечает ли это на ваш вопрос, но используя конструкцию IS NULL, вы можете проверить, является ли любое заданное скалярное выражение NULL:
SELECT * FROM customers WHERE first_name IS NULL
В MS SQL Server функция ISNULL() возвращает первый аргумент, если он не равен NULL, иначе он возвращает второй. Вы можете эффективно использовать это, чтобы убедиться, что запрос всегда дает значение вместо NULL, например:
SELECT ISNULL(column1, 'No value found') FROM mytable WHERE column2 = 23
Другие СУБД имеют аналогичную функциональность.
Если вы хотите знать, может ли столбец быть нулевым (т.е. определено как nullable), без запроса фактических данных, вы должны посмотреть в information_schema.
Используйте Is Null
select * from tblName where clmnName is null
Вы хотите знать, является ли столбец нулевым.
select * from foo where bar is null
Если вы хотите проверить какое-то значение, не равное чему-либо, и столбец также содержит нулевые значения, вы не получите столбцы с нулевым значением в нем
не работает:
select * from foo where bar <> 'value'
работает:
select * from foo where bar <> 'value' or bar is null
в Oracle (не знаю, на другой СУБД) некоторые люди используют этот
select * from foo where NVL(bar,'n/a') <> 'value'
если я правильно прочитал ответ от tdammers, тогда в MS SQL Server это похоже на
select * from foo where ISNULL(bar,'n/a') <> 'value'
по-моему, это немного взломать, а момент "значение" становится переменной, оператор имеет тенденцию становиться ошибкой, если переменная содержит "n/a".
по некоторым причинам IS NULL может не работать с некоторым типом данных столбца я нуждался в том, чтобы заставить всех сотрудников, что их полное имя на английском отсутствует, я использовал:
** SELECT emp_id, Full_Name_Ar, Full_Name_En от сотрудников, где Full_Name_En = 'или Full_Name_En имеет значение null **
select Column from Table where Column is null;
выберите * from tableName, где columnName имеет значение null