배경 값 : (! 그래, 난 그것을 변화 AM) 나는 기존의 SQL Server 2000 데이터베이스를 처리하고있어널 열
합니다. 그것은 우리가 이름을 부를 수있는 컬럼을 가지고 있는데, 이는 null이 아닌 nvarchar (100)입니다. 나는 이것을 확인했다. 나는이 쿼리를 실행하면
는 :
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 = ''
이 결과 약 3 분의 1 "32"를 반환 : 공간이 아닌 널 (null) 열에서 법적 될 때부터,이 빈 값에 대해 조금 더 알아 싶어서이 쿼리를 실행 즉 공간. 그러나 나머지 2/3의 경우 null을 반환합니다.
질문 :
- 이 어떻게 널이 아닌 정의가 열에 null 값이있을 수 있습니까?
- null 값이 "name is null"쿼리에 나타나지 않는 이유는 무엇입니까?
당신은'NULL' 값을 가지고 있지 않습니다. – Lamak
문자 값 '\ 0'이 (가) 'NULL'로 해석됩니다. 그 공식 이름은 "NUL"이라고 생각합니다. –
'NULL '을 반환하는'ASCII (substring (name, 1, 1))'은'name'이 null이라는 것을 의미하지 않는다는 것을 이해해야합니다. – Lamak