如果没有值NULL
,任何字符变化字段的版本都不会返回任何内容......它真的令人沮丧
CASE WHEN COALESCE(NULLIF(e.name,''),'unassigned') IS NULL THEN 'unassigned' ELSE a.name END
是我的最终测试,它仍然只返回NULL
,除非该字段具有值
它的角色不同(255)
COALESCE(a.name,'unassigned') // won't work
NULLIF(a.name,'') // won't work
NULLIF(a.name,NULL) // won't work
COALESCE(NULLIF(a.name,''),'unassigned') // won't work
然而我使用它0
的那一刻......
与此相关的是什么?
它是一个字符变化(255)字段,它被设置为默认为空
作为一个关键点,表列的构建是
name varying character(255) DEFAULT(NULL)
所以我知道它输入了NULL 我已经完成了
SELECT * FROM <tbl> WHERE name IS NULL;
当然,我使用a.name返回所有NULL行...那么这个处理是什么?
答案 0 :(得分:-1)
好的......每个人都决定回答我:
COALESCE(NULLIF(e.name,''),'unassigned') IS NULL...
此方法永远不会返回&#34;没有记录&#34;并且因为这是一个创建物化视图的存储过程,我通过嵌套查询进行轮询 - 其中列可能具有0
(作为默认id = other_id)嵌套查询只是不返回任何行。如果未返回任何行,则COALESCE
或NULLIF
的函数将永远不会执行。必须返回一行才能使这些函数对行值进行操作...因为我从未听说过具有PK自动递增字段的表,从0
开始并且通常从1
结果集&#34;没有记录返回&#34;将始终将NULL值返回到物化视图列。
我之后运行的用于轮询该物化视图中的行的查询将正常运行为COALESCE(etc etc)
,因为现在该列中存在实际的NULL值。