有没有更好的方法来执行以下操作来检查列是否为空/空?
(v.file_name is not null and v.file_name != ''
and v.file_last_known_location is not null and v.file_last_known_location != '')
答案 0 :(得分:1)
我认为这更清楚
COALESCE(v.file_name,'') != '' AND COALESCE(v.file_last_known_location,'') != ''
在某些系统上,这可能会对索引列表现更差(如@sgeddes注释)。
答案 1 :(得分:1)
我会说,即使当前查询看起来很笨拙,当您在file_name
和file_last_known_location
上有索引时,它也会执行建议的答案。
function
子句中Where
的使用将限制优化器使用Index
。因此最好使用原始查询
(v.file_name is not null and v.file_name != ''
and v.file_last_known_location is not null and v.file_last_known_location != '')