一个很变态的SQL

Posted AmourOnce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个很变态的SQL相关的知识,希望对你有一定的参考价值。

技术分享
select max(s.operat_time) as pzTime
  from ws_state_record s
 where s.status = (select p1.node_id
                     from WS_PROCESS p1
                    where p1.role_id =
                          (select max(p2.role_id)
                             from WS_PROCESS p2
                            where p2.node_id in (10001,10002)))//业务表流程足迹
   and s.operat_orgtype = review


//------------------------测试01 --------------------------------
select  t.id,
        substr(t.team_id, 2, 4) as a,
       substr(t.team_id, 7, 4) as b,
       d.name as team_type_text,
       t.throughnodes,
       (select max(s.operat_time) as pzTime
  from ws_state_record s
 where s.status =
       (select p1.node_id
          from WS_PROCESS p1
         where p1.role_id =
               (select max(p2.role_id)
                  from WS_PROCESS p2
                 where p2.node_id in (t.throughnodes))) and s.bizdata_id = t.id
   and s.operat_orgtype = review) as pz_time
   
  from WS_TEAM_INFORMATION t
  left join DICT d
    on t.team_type = d.code


---------------------------------------------------------
select max(s.operat_time) as pzTime
  from ws_state_record s
 where s.status =
       (select p1.node_id
          from WS_PROCESS p1
         where p1.role_id =
               (select max(p2.role_id)
                  from WS_PROCESS p2
                 where p2.node_id in ( SELECT SUBSTR(throughnodes,0,INSTR(throughnodes,,)-1) FROM ws_team_information
  UNION
  SELECT SUBSTR(throughnodes,INSTR(throughnodes,,,1,ROWNUM)+1,5)
  FROM ws_team_information
  CONNECT BY ROWNUM<=LENGTH(throughnodes)-LENGTH(REPLACE(throughnodes,,,‘‘))))) 
   and s.operat_orgtype = review

-----------------------------------------最终版---------------------------------------------
select m1.id, m2.pzTime
  from (select t.id,
               substr(t.team_id, 2, 4) as a,
               substr(t.team_id, 7, 4) as b,
               t.throughnodes,
               d.name as team_type_text
          from WS_TEAM_INFORMATION t
          left join DICT d
            on t.team_type = d.code) m1
  left join

 (select s.bizdata_id, max(s.operat_time) as pzTime
    from ws_state_record s
   where s.status =
         (select p1.node_id
            from WS_PROCESS p1
           where p1.role_id =
                 (select max(p2.role_id)
                    from WS_PROCESS p2
                   where p2.node_id in
                         (SELECT SUBSTR(throughnodes,
                                        0,
                                        INSTR(throughnodes, ,) - 1)
                            FROM ws_team_information
                          UNION
                          SELECT SUBSTR(throughnodes,
                                        INSTR(throughnodes, ,, 1, ROWNUM) + 1,
                                        5)
                            FROM ws_team_information
                          CONNECT BY ROWNUM <=
                                     LENGTH(throughnodes) -
                                     LENGTH(REPLACE(throughnodes, ,, ‘‘)))))
     and s.operat_orgtype = review
   group by s.bizdata_id) m2
    on m1.id = m2.bizdata_id
View Code

嘻嘻

以上是关于一个很变态的SQL的主要内容,如果未能解决你的问题,请参考以下文章

变态的SQL SERVER 2000数据库 迁移

6个变态的C语言Hello World程序 之 雷人的程序语言

sql sql里面的代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

Microsoft SQL Server 代码片段收集

缺少 SQL SERVER 2014 代码片段