`

SQL 逻辑处理

 
阅读更多

自己推理出来的 SQL逻辑处理 判断分情况执行不同的SQL  值得收藏

SELECT DECODE(STAT,'E',(SELECT 'OK' FROM DUAL),'F',(SELECT 'NO' FROM DUAL ))
FROM(
SELECT CASE WHEN AA-BB > 0 THEN
 'E'
 ELSE
 'F'
 END
  STAT
  from( SELECT   X.A AA , F.B BB FROM (SELECT (1-2) A FROM DUAL) X,(SELECT (4-2) B FROM DUAL) F ) );

 

-----------------这个SQL虽然简单 但是有绕 得收藏

 

SELECT 
 CASE WHEN STATUS8 = 'N' THEN  'N'  ELSE 'Y'   END STATUS,
 CASE WHEN STATUS8 = 'N' THEN '报错吧' END MESS
 from(
SELECT DECODE(STAT,'E',
(
SELECT DECODE
(
STAT1,'H',
(SELECT 
 CASE WHEN HKJSSJ-GDSJ > 0 THEN  'N'  --表示要考虑烘烤工序
 ELSE 'Y'  --表示不需要考虑X
 END STATUS2
 FROM (  
   SELECT  ROUND(TO_NUMBER(TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss') -  TO_DATE(K.HKGZSJ,'YYYY-MM-DD hh24:mi:ss')) * 24 ) HKJSSJ--F.GDSJ
FROM( SELECT TO_CHAR(MAX(PARTITION_DATE),'YYYY-MM-DD hh24:mi:ss') HKGZSJ  FROM  SFC_STEP 
   WHERE SPLIT(OPERATION_BO,2) = 'SBAK1' AND SFC_ROUTER_BO  LIKE '%STB130624000021%') K ) ),
  ------H 
   'J',(SELECT 'Y' FROM DUAL )   
   ) STATUS1 --J状态 J表示不需要考虑烘烤查询
FROM( ----  考虑SFC是否经过烘烤 
SELECT CASE WHEN NUMCS > 0 THEN
 'H'  -- E状态 H表示考虑SFC过烘烤查询 
 ELSE
 'J'  -- E状态 J表示不需要考虑烘烤查询
 END STAT1 FROM (SELECT COUNT(*) NUMCS FROM  SFC_STEP 
   WHERE SPLIT(OPERATION_BO,2) = 'SBAK1' AND SFC_ROUTER_BO  LIKE '%STB130624000021%')) 
   ) --------------------  上面考虑E的情况 
   ,'F',(SELECT 'Y' FROM DUAL ) ) --  F 不用考虑
   STATUS8
FROM( ---第二层from 取出 当前时间-刷红胶的时间得到小时 与工单下面的维护时间比较  E时考虑烘烤工序  F不用考虑
SELECT CASE WHEN JSSJ-GDSJ < 0 THEN   ---换数字调试
 'E'  --表示要考虑烘烤工序
 ELSE
 'F'  --表示不需要考虑X
 END
  STAT,GDSJ  --GZSJ 过站时间  gdsj 工单维护时间  JSSJ 计算时间
  FROM(  ---第一层from 取出 当前时间-刷红胶的时间得到小时 ,工单下面的维护时间
  SELECT  ROUND(TO_NUMBER(TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss') -  TO_DATE(X.GZSJ,'YYYY-MM-DD hh24:mi:ss')) * 24 ) JSSJ,F.GDSJ
FROM(SELECT TO_CHAR(PARTITION_DATE,'YYYY-MM-DD hh24:mi:ss') GZSJ FROM  SFC_STEP 
   WHERE SPLIT(OPERATION_BO,2) = 'SPRI1' AND SFC_ROUTER_BO  LIKE '%STB130624000030%') X, (SELECT VALUE GDSJ FROM CUSTOM_FIELDS WHERE HANDLE IN(SELECT SHOP_ORDER_BO FROM SFC 
           WHERE SFC = 'STB130624000030' AND SITE = '1000') AND ATTRIBUTE = 'MAX_VALID_TIME') F )) 
           );

 

分享到:
评论

相关推荐

    SQL逻辑和物理分页

    总结,SQL逻辑分页是一种通过应用程序处理分页的方式,虽然可能效率较低,但在某些情况下是必要的。理解逻辑分页的工作原理以及如何有效地实现它,对于优化数据库性能和提供更好的用户体验至关重要。

    SQL server中用到逻辑表达式的句子

    在SQL Server中,逻辑表达式是构建复杂查询和控制流程的关键元素。它们允许数据库操作根据特定条件执行不同的操作,从而增强了SQL语言的功能性和灵活性。以下是对给定文件中提到的几种涉及逻辑表达式的SQL Server...

    MyBatisPlus中全局Sql注入器应用_逻辑删除使用示例代码

    在处理SQL时,安全性是至关重要的,MyBatisPlus为防止SQL注入提供了全局Sql注入器。同时,逻辑删除是数据库管理中的一个重要特性,允许我们标记数据为已删除而不是物理删除,这在某些场景下非常有用。现在,我们将...

    自动添加引号加号sql文处理利器

    标题中的“自动添加引号加号sql文处理利器”指的是一个专门用于简化SQL语句处理的工具,它能够帮助程序员自动完成SQL语句中的引号添加、加号连接等常见操作,极大地提高了编写和处理SQL语句的效率。在编程过程中,...

    naike处理逻辑.sql

    naike处理逻辑.sql

    sql查询的逻辑执行顺序

    ### SQL查询的逻辑执行顺序详解 #### 一、引言 SQL(Structured Query Language)作为数据库操作的标准语言,在数据检索、管理和分析方面扮演着至关重要的角色。为了更高效地理解和优化SQL查询,了解其背后的执行...

    sql逻辑坏修复.rar_sql数据库修复过程

    在IT行业中,数据库是...总之,修复SQL数据库的逻辑坏道是一个复杂的过程,需要谨慎处理以保护数据的完整性和系统的稳定性。通过理解这些步骤和工具,IT专业人员可以更好地应对数据库遇到的问题,确保业务的连续性。

    过期数据处理输入加工逻辑.sql

    过期数据处理输入加工逻辑.sql

    sql server 2005技术内幕T-SQL查询(第一章 逻辑查询处理)

    sql server 2005技术内幕T-SQL查询 第一章 逻辑查询处理 自己整理的笔记,希望对各位朋友有用!

    T-SQL 通配符和逻辑表达式

    ### T-SQL逻辑表达式解析 除了通配符,T-SQL还支持标准的逻辑运算符:`NOT`, `AND`, `OR`,这些运算符用于构建复杂的条件判断,从而实现更精细的数据筛选。 #### 1. AND 运算符 `AND`运算符要求其两边的条件同时...

    解析基于逻辑蕴涵的sql语言.pdf

    在数据库原理中,数理逻辑不仅仅是逻辑关系的演绎,还涉及将逻辑规则转换为SQL语言的过程,以及在特定关系数据库管理系统中的实现。SQL(Structured Query Language)是关系数据库中用于数据查询、操作、定义和控制...

    spring+hibernate,自己封装了原生sql的处理,模仿mybatis使用

    Spring和Hibernate的集成使得开发者可以在一个统一的环境中进行事务管理、数据访问和业务逻辑处理。Spring通过其JDBC抽象层可以与Hibernate无缝配合,提供声明式事务管理,使得代码更加简洁和易于维护。 描述中提到...

    SQL简单的建表和业务逻辑

    在IT行业中,SQL(Structured Query Language)是一种用于管理和处理关系数据库的强大工具,是任何数据驱动应用程序的基础。"SQL简单的建表和业务逻辑"这个主题涵盖了SQL的基础知识,包括创建数据库表、插入数据、...

    SQL与PL SQL讲座

    而PL/SQL(Procedural Language/Structured Query Language)则是Oracle公司开发的一种过程化编程语言,它扩展了SQL的功能,使得在数据库中进行复杂的业务逻辑处理成为可能。下面将详细阐述SQL与PL/SQL的相关知识点...

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

     SQL Server 2005中新的逻辑处理阶段  表运算符  OVER子句  集合操作  结论 第2章 物理查询处理  查询处理期间的数据流  编译  Algebrizer  优化  使用查询计划  更新计划  结论  致谢 第3章 查询...

    sql server TRIGGER与逻辑表INSTERED 和 DELETED

    触发器和逻辑表的结合使用,可以在执行数据操作前后实施复杂的逻辑处理。例如,可以实现以下功能: 1. 自动维护数据完整性和业务规则,如不允许删除关联有其他表数据的记录。 2. 自动更新其他表中相关数据,如在更新...

    基于C语言与SQL Server的嵌入式编程及图像处理技术.pdf

    这种方式结合了SQL在数据操纵和查询上的强大功能与高级语言在复杂逻辑处理和系统控制方面的能力。 在嵌入式SQL中,SQL语句被嵌入到主程序语言中,通常使用预处理程序来处理。预处理程序在主程序编译之前运行,它将...

    网上书店 java sql java sql 网上书店 java sql

    总结来说,"网上书店 java sql"这个项目涵盖了Java Web开发的多个核心方面:使用Java进行后端逻辑处理,利用SQL进行数据管理,结合前端技术构建用户友好的界面,并在安全性和性能上下功夫。对于学习和实践全栈开发,...

    X-Base PL_SQL异常处理的设计与实现.pdf

    X-Base PL/SQL通过将业务处理逻辑与错误处理代码分离的方式实现了异常处理。这样做不仅可以增强程序的可读性,而且将错误发生时的实际错误与错误处理代码的联系交给了运行系统,从而提升程序的健壮性和错误诊断的...

    逻辑表达式& | ! 转sql逻辑查询 and or not 逻辑表达式转sql逻辑查询 使用mybatis @SelectProvider

    处理过程 //keywords 为输入 逻辑查询关键词 public List countList(String keywords) { //逻辑语句转换 String title = ExpToSqlUtils.expToSql(keywords, title, like , 1); //查询结果 List list = ...

Global site tag (gtag.js) - Google Analytics