oracle - 如何在 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'
解决方案
推荐阅读
- sql - SQL Pivot 带有值列表的多列
- python - Tensorflow 无法容纳图像列表
- python - 烧瓶`RuntimeError:在应用程序上下文之外工作。`来自中间件
- azure-functions - ARM 模板 - 在 Azure 存储 Blob 中使用 MSDeploy 和压缩代码部署函数
- reactjs - 如何将用户重定向到登录前的位置(auth0 反应)
- geometry - 如何计算以已知弦长、宽度和角度为中心点的两个矩形的面积值?
- typescript - 映射到文件夹中的所有图像
- javascript - React - 动态创建和删除列表项
- database - 在 Web 服务器上部署数据库
- javascript - window.postMessage 根据内容动态设置跨域Iframe高度