如何让SQL识别WHERE column = NULL?

Pet*_*ter 8 sql t-sql sql-server

在microsoft SQL中,我有以下声明(粗略地):

UPDATE sometable 
   SET somecolumn = @somevalue 
 WHERE somecolumn = NULL;
Run Code Online (Sandbox Code Playgroud)

@somevalue 先前在脚本中设置.

运行正常,SQL告诉我零行受影响.有五行是somecolumn是NULL.我究竟做错了什么?

Joe*_*lli 17

您必须使用IS NULL来测试列中的NULL值.

 UPDATE sometable SET somecolumn = @somevalue WHERE somecolumn IS NULL;
Run Code Online (Sandbox Code Playgroud)

  • @Peter:NULL不是值 - 它是*缺少任何值的占位符* (5认同)
  • NULL值不能等于任何值,即使是另一个NULL. (2认同)
  • @james:两个未知数的比较是未知的. (2认同)