Bis*_*han 1 sql oracle oracle11g
VARCHAR2我的数据库表中有一个用于存储的类型列invoice_number.并且有一个查询来获得最大值invoice_number,如下所示.
select max(invoice_number) from invoice;
Run Code Online (Sandbox Code Playgroud)
但是invoice表中没有数据,上面的查询返回值为null.但在这种情况下,我需要将此值替换为0而不是null.我怎么能这样做?
使用NVL:
SELECT NVL(MAX(invoice_number), '0')
Run Code Online (Sandbox Code Playgroud)
使用ANSI COALESCE:
SELECT COALESCE(MAX(invoice_number), '0')
Run Code Online (Sandbox Code Playgroud)
使用DECODE:
SELECT DECODE(MAX(invoice_number), NULL, '0')
Run Code Online (Sandbox Code Playgroud)
使用ANSI CASE:
SELECT CASE
WHEN MAX(invoice_number) IS NULL THEN '0'
ELSE MAX(invoice_number)
END
Run Code Online (Sandbox Code Playgroud)
所有的工作,我可能会使用NVL,因为COALESCE是ANSI但不知道它必须像本机替代品一样快.
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |