在以下查询中,accoount_num是varchar2(20),不返回NA。我的表中没有999910026A。我正在使用oracle数据库。这对我来说很奇怪。
选择NVL(account_num,‘NA’)来自……
表中没有行 account_num='999910026A' ,所以没有返回任何行,并且没有什么可以应用 nvl 上。 模仿这种行为的一种方法是使用a left join :
account_num='999910026A'
nvl
left join
SELECT NVL(account_num, 'NA') FROM (SELECT '999910026A' AS literal FROM dual) l LEFT JOIN account ON account_num = literal
假设 account_num 字段在表中有唯一的值(甚至可能是键?),你可以通过应用聚合来实现 - 它总是会返回一个结果:一个结果。
account_num
select nvl(min(account_num),'NA') from account where account_num='999910026A'