【发布时间】:2013-01-23 09:26:51
【问题描述】:
加入一个表或从多个表中选择哪个更好?
例如,让我们假设以下类似情况:
使用加入:
SELECT COALESCE(SUM(SALARY),0) FROM X
JOIN Y ON X.X_ID=Y.Y_X_ID
或
通过从多个表中选择
SELECT COALESCE(SUM(SALARY),0) FROM X, Y
WHERE X.X_ID=Y.Y_X_ID
【问题讨论】:
-
它们是一回事。查看执行计划。第二个也是一个join(是Oracle syle join)。但是,您应该使用更明确且在全球范围内使用的第一种样式。
-
说到ANSI和兼容性,尽量改掉使用Nvl()的习惯。 Coalesce() 是标准函数,由于短路评估,它更灵活,某些情况下比 Nvl() 性能更好
-
谢谢大家的建议。
标签: sql database oracle join oracle10g