首页 文章

Oracle Database 11g <> Oracle for CHAR(1 BYTE)的操作,[重复]

提问于
浏览
0

这个问题在这里已有答案:

我有一个带有这个字段的oracle表

"SYSTEM_HIDDEN" CHAR(1 BYTE),

我有一个行id(26119),该字段的值为NULL . 但是当我使用此语句查询此行时,不返回任何行:

SELECT * FROM T_BOOK WHERE id =26119 and SYSTEM_HIDDEN <> 'T'

在Oracle Database 11g企业版11.2.0.4.0版 - 64位 生产环境 中

1 回答

  • 0

    NULL 值在所有比较中都表现特殊( IS NULLIS NOT NULL 除外),将 NULL=<>><>=<= 进行比较,始终返回 NULL ,最终在不选择任何行方面表现得像 FALSE .

    请改用 (SYSTEM_HIDDEN <> 'T' or SYSTEM_HIDDEN IS NULL)NVL(SYSTEM_HIDDEN, 'F') <> 'T'

相关问题