oralce查找返回不同的值,寻找不同的表(原创)

news/2024/11/20 9:13:21/

查找返回不同的值,寻找不同的表

select case a_id when 1 then 

(select b_id||' '||b_desc from b where b.b_id=a.a_id)

else 

(select e_id ||' '||e_desc from e where e.e_id=a.a_id)

end from a;

=================================================

以上方法的缺陷是单表,判断。今天来了个挑战,更犀利

先看下流程

if(中间,如果第一段sql取到为空的话;)

if(){
   select kpi_code
          from dss.dss_ptl_user_customize_kpi f
         where f.login_id = 'CaoBaojun'
           and f.grid_id = 'PTL_VIEW_PRODUCE_D'
   }
  
   else{
           SELECT distinct T.KPI_CODE AS "kpi_code", T.SERVICE_TYPE AS "svc_type"
  FROM dss.DSS_PTL_GRID_KPI T
 WHERE T.GRID_ID = 'PTL_VIEW_PRODUCE_D'
   and t.view_flag = '10'
   AND T.ROLE_ID = 'default'
   }

解决方案是 ,把优先级高的,设置为2,然后union all,然后取大的。太犀利了。

   with a as (select * from (
select * from
(SELECT distinct T.KPI_CODE AS kpi_code,'1' s
  FROM dss.DSS_PTL_GRID_KPI T
 WHERE T.GRID_ID = 'PTL_VIEW_PRODUCE_D'
   and t.view_flag = '10'
   AND T.ROLE_ID = 'default')
   union all(
   select f.kpi_code,'2' s
          from dss.dss_ptl_user_customize_kpi f
         where f.login_id = 'CaoBaojun'
           and f.grid_id = 'PTL_VIEW_PRODUCE_D')
         ) )
  select kpi_code from a where s= (select max(s) from a)


http://www.ppmy.cn/news/24174.html

相关文章

西湖论剑 2023 比赛复现

WEB real_ez_node 在 route/index.js 中: router.post(/copy,(req,res)>{res.setHeader(Content-type,text/html;charsetutf-8)var ip req.connection.remoteAddress;console.log(ip);var obj {msg: ,}if (!ip.includes(127.0.0.1)) {obj.msg"only for…

第44章 用户密码实体及其约束规则的定义实现

1 说明: 由当前程序需要兼容实现多种用户密码的加密操作,所以必须把“CustomerPassword”定义为实体类,该类用于用于把加密方式、密钥及其加密后的密码持久化到“CustomerPassword”表中,以便用为用户登录操作提供验证支撑。 如果…

ubuntu20.04安装docker与docker-compose

安装docker 查看系统发行版本 cat /proc/version1、更新apt包 sudo apt-get update2、安装必备的软件包以允许apt通过 HTTPS 使用存储库(repository): sudo apt-get install ca-certificates curl gnupg lsb-release3、添加Docker官方版本…

SharkTeam:Move合约开发与合约安全

近期,围绕 Aptos 和 Sui,新兴的高性能 L1链 以及这些新链背后的 Move 智能合约编程语言引起了很多关注,社区也非常活跃,很多开发者和项目已经开始积极转向 Move。但Move相对Solidity差别较大,即使是相对比较接近的Rust…

java面试题(二十)中间件redis

1.1 Redis可以用来做什么? 参考答案 Redis最常用来做缓存,是实现分布式缓存的首先中间件;Redis可以作为数据库,实现诸如点赞、关注、排行等对性能要求极高的互联网需求;Redis可以作为计算工具,能用很小的…

华为OD机试 - 最小传递延迟(Python)| 代码编写思路+核心知识点

最小传递延迟 题目 通讯网络中有 N 个网络节点 用 1 ~ N 进行标识 网络通过一个有向无环图进行表示 其中图的边的值,表示节点之间的消息传递延迟 现给定相连节点之间的延时列表 times[i]={u,v,w} 其中 u 表示源节点,v 表示目的节点,w 表示 u 和 v 之间的消息传递延时 请计…

SpringMVC中遇到的错误

SpringMVC中遇到的错误1.web.xml中配置SpringMVC核心类: DispatcherServlet 报错解决方案:添加Tomcat包2. not declaration can be found for element--------‘mvc:annotation-driven‘通配符的匹配很全面, 但无法找到元素 mvc:annotation-driven 的声明解决方案&a…

Windows 搭建ARM虚拟机 UOS系统

搭建环境安装虚拟机下载虚拟机QEMU,https://www.qemu.org/download/,目前最新版本是7.2.0。安装完成后,需要将qemu的安装路径设置到环境变量完成后运行cmd,测试环境变量配置完成。qemu-system-aarch64 --version如上截图所示&…