db2空字符串相等比较

时间:2017-01-22 05:16:39

标签: string db2 compare db2-luw

我想在空字符串(''='')

之间进行相等的比较

查询无效。 我认为''=''不起作用。

SELECT RESOURCE_ID  
FROM DEV_RESOURCE
WHERE PHYSICAL_NAME = 'g'                   
    AND 
    CASE WHEN '' = '' THEN '1' ELSE RESOURCE_DIV END = CASE WHEN '' = '' THEN  '1' ELSE '' END
 -- AND DECODE('', '','1', RESOURCE_DIV) = DECODE('','','1','')
WITH UR;

与评论一样,使用解码功能更改查询似乎很棒,但我不想。

1 个答案:

答案 0 :(得分:0)

原因是 " Oracle兼容性"。

在创建数据库之前,我修改了允许Oracle兼容性的注册表变量。 (db2set DB2_COMPATIBILITIY_VECTOR = ORA)

与DB2不同,Oracle将null视为空字符串('')。 所以oracle的兼容性使得'' =''带来错误。