【发布时间】:2013-03-18 10:52:02
【问题描述】:
我尝试从表中选择最大值
SELECT MAX(cid) FROM itemconfiguration;
但是,当表 itemconfiguration 为空时,MAX(cid) 语句被评估为 NULL,而我需要一个数字。如何处理并将NULL视为0?
【问题讨论】:
我尝试从表中选择最大值
SELECT MAX(cid) FROM itemconfiguration;
但是,当表 itemconfiguration 为空时,MAX(cid) 语句被评估为 NULL,而我需要一个数字。如何处理并将NULL视为0?
【问题讨论】:
【讨论】:
COALESCE 更可取,因为它更通用(可以接受两个以上的参数并返回第一个非 NULL,而 NVL 是两个参数的特例),它 does short-circuit (不评估第一个非 NULL 之后的参数)并且它在 SQL-92 中标准化(而 NVL 是 Oracle 专有的)。
SELECT NVL(MAX(cid), 0) FROM itemconfiguration;
【讨论】:
使用 ISNULL 可以在 max 返回 null 时替换数字,
ISNULL(MAX(cid),0) FROM itemconfiguration;
【讨论】: