首页 > 解决方案 > 如何在 Oracle 中使用 nvl 优化 SQL?

问题描述

我使用下面的SQL(Oralce)来得到我需要的结果,如果t2.type=pro有数据,那么名称和代码列选择t2.type=pro's的数据,否则选择t3.type=dev's的数据,SQL很难看,有没有人知道如何优化它?

SELECT DISTINCT t1.ID AS ID
,nvl(t2.type, t3.type) AS type
,nvl(t2.name, t3.name) AS name
,nvl(t2.code, t3.code) AS code
FROM PRO_DEV_TABLE t1
LEFT JOIN PRO_DEV_TABLE t2 ON t2.ID=t1.ID AND  t2.type='pro'
LEFT JOIN PRO_DEV_TABLE t3 ON t3.ID=t1.ID AND  t3.type='dev'

标签: oraclenvl

解决方案


推荐阅读