比这个还长的sql语句我都写过,只不过我在其中有些环节用自编的函数来实现的,你不妨想想其他方法。因为你的语句实在太多,又不明白你到底要实现什么功能,给你分开也是瞎分。不能解决问题
解决方案 »
- 使用delete删除数据后,查询很慢,求解?
- DBMS_SQL包?我的存储过程哪里出了问题,求助
- oracle10g form 无法编译
- *************************觸發器問題************************
- 崩溃了,这个异常到底怎么解决,网上查了好久都没查到答案
- 给定一个dmp文件,不借助pl/sql工具,想知道里面的表结构,不知道怎么处理?
- ◆如何获取当前会话的一下信息◆
- 简单问题:SQL* Plus中如何选择执行某个数据库操作语句?
- oracle如何对一条sql语句只返回列信息?
- 哪里有下Oracle的FTP?
- 请问在Oracle中怎么实现SqlServer中的自增?
- 今天下午去面试,问道Oracle与SQL server的主要区别是什么,你认为因该怎么回答?
1。将
DECODE(K.HBSVIRUS, '+', (SELECT NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '01') ) || DECODE(K.HBEVIRUS, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '02') ) || DECODE(K.HCVIRUS, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '03') ) || DECODE(K.MRSAVIRUS, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '04') ) || DECODE(K.WARVIRUS, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '05') ) || DECODE(K.TPHAVIRUS, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '06') ) || DECODE(K.HIVVIRUS, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '07') ) || DECODE(K.ATLAVIRUS, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '08') ) || DECODE(K.PYOVIRUS, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '09') ) || DECODE(K.TBVIRUS, '+', (SELECT ',' ||NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '10') ) || DECODE(K.CHILDINFECTION, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '11') ) || DECODE(K.INFECTION1, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '12') ) || DECODE(K.INFECTION2, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '13') ) || DECODE(K.INFECTION3, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '14') ) || DECODE(K.INFECTION4, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '15') ) || DECODE(K.INFECTION5, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '16') ) || DECODE(K.INFECTION6, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '17') ) || DECODE(K.INFECTION7, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '18') ) || DECODE(K.INFECTION8, '+',(SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '19') ) || DECODE(K.INFECTION9, '+', (SELECT ',' || NAME FROM COMCONST WHERE TABLEKIND = 'C13Infection' AND CODE = '20') ) NAME
部分做成一个单独的函数,用于生成NAME。2.将主语句from后边作为表名出现的(select ..from ..)语句独立出来,建立view,然后直接引用view名作为表名。3.书写select语句时要有层次,复杂的语句每个字段名作为一行,select 、from、where要单独突出,子语句要缩格,这样方便阅读。