如果我没有返回任何行并且想要硬编码计数和 sysdate 信息的默认值“0”,我该如何重写这个 oracle 查询?
如果没有数据,我的查询现在会给我这个:
1* SELECT count(*) as MYCNT, timestamp FROM TESTDATA WHERE timestamp = to_char(sysdate-2, 'yyyymmdd') || '0000' group by timestamp
SQL> /
no rows selected
在这里,我尝试了 NVL,但没有得到预期的输出:
1* select nvl(count(*), 0) as MYCNT, to_char(sysdate-2, 'yyyymmdd') || '0000' from TESTDATA WHERE timestamp = to_char(sysdate-2, 'yyyymmdd') || '0000' group by timestamp
SQL> /
no rows selected
想看到这样的东西:
MYCNT TIMESTMP
----- --------
0 201107250000