Справочной информации: (! Да, я меняю его)Null столбца с неопределенными значениями
Я имею дело с базой данных устаревшего SQL Server 2000. Он имеет столбец, который мы можем назвать именем, которое является nvarchar (100), а не null. Я проверил это.
Когда я запускаю этот запрос:
select name
from mytable
where name is null
я не получаю никаких результатов. Однако, когда я запускаю этот запрос:
select name
from mytable
where name = ''
Я получаю около 100 результатов. Я хотел бы узнать немного больше об этих пустых значениях, так как пространства будут законными в не столбце нулевого, так что я выполнил этот запрос:
select ASCII(substring(name, 1, 1))
from s
where name = ''
Это возвращает «32» около трети результатов, т.е. пространство. Однако для других 2/3rds он возвращает null.
Вопрос:
- Как может быть нулевые значения в столбце, который имеет не нулевое определение?
- Почему эти нулевые значения не отображаются в запросе «name is null»?
У вас нет значений «NULL», вы сказали, что сами, верно ?. – Lamak
Я бы предположил, что значение символа '\ 0' интерпретируется как 'NULL'. Я считаю, что его официальное название - «NUL». –
Вам нужно понять, что 'ASCII (substring (name, 1, 1))' возвращает вас NULL', не означает, что 'name' имеет значение null – Lamak