使用Null值更新列

nat*_*ath 26 sql oracle null sql-update

我尝试更新表格如下:

update userloginstats set logouttime = sysdate where logouttime = null;
Run Code Online (Sandbox Code Playgroud)

它没有使用空值更新列.什么地方出了错?

cod*_*ict 62

将其更改为

...where logouttime is null;
                    ^^^^^^^
Run Code Online (Sandbox Code Playgroud)

NULL是一个特殊值,我们不能使用通常的=运算符.

Oracle文档中获取NULL:

要测试空值,请使用比较条件IS NULL和IS NOT NULL.如果您使用带有空值的任何其他条件并且结果取决于null的值,则结果为UNKNOWN,因为null表示缺少数据,null 不能等于或等于任何值或等于null


Luc*_*ero 8

您无法将NULL与=进行比较.

用这个:

update userloginstats set logouttime= sysdate where logouttime is null;
Run Code Online (Sandbox Code Playgroud)


Don*_*nie 5

logouttime is null不是= null. null永远不会等同于任何事情,甚至不是自己.因此,运营商is.


Mac*_*ros 5

你需要使用is null= null

update userloginstats set logouttime= sysdate where logouttime is null;
Run Code Online (Sandbox Code Playgroud)