下面是我的sql语句SELECT DISTINCT *
FROM (SELECT DISTINCT A.*, B.*
FROM OCC_TN_AMA_081230 A, INC_TEL_LINE_NO B
WHERE A.OG_DIAL_NUM = B.TEL_LINE_NO
OR A.OG_DIAL_NUM = B.GATEWAY_NO
OR A.IC_CLG_NUM = B.TEL_LINE_NO
OR A.IC_CLG_NUM = B.GATEWAY_NO)
WHERE TEL_LINE_NO = NVL(DN, TEL_LINE_NO)
AND GATEWAY_NO = NVL(GN, GATEWAY_NO)
AND IP = NVL(ADDRESS, IP)
AND BUILD_CODE = NVL(ADDRESSCODE, BUILD_CODE)
AND IAD_NAME = NVL(IAD, IAD_NAME)
AND PORT = NVL(PORT, PORT)
AND ORIG_GREP = NVL(INTRUNKNUM, ORIG_GREP)
AND TERM_GREP = NVL(OUTTRUNKNUM, TERM_GREP)
AND ORIG_MEM = NVL(INTRUNKMEM, ORIG_MEM)
AND TERM_MEM = NVL(OUTTRUNKMEM, TERM_MEM);我的原意是这样,nvl(a,b)里,a是我输入的参数,我是想当我不输入参数时,可以忽略这个条件,例如是where 1=1.
但执行时,执行了N久也没结果。当我把AND ORIG_MEM = NVL(INTRUNKMEM, ORIG_MEM) AND TERM_MEM = NVL(OUTTRUNKMEM, TERM_MEM) 这两个条件注释掉后,
结果很快出来。但一加上后很慢,等了一小时也没有出来。请问这是什么原因呢?
FROM (SELECT DISTINCT A.*, B.*
FROM OCC_TN_AMA_081230 A, INC_TEL_LINE_NO B
WHERE A.OG_DIAL_NUM = B.TEL_LINE_NO
OR A.OG_DIAL_NUM = B.GATEWAY_NO
OR A.IC_CLG_NUM = B.TEL_LINE_NO
OR A.IC_CLG_NUM = B.GATEWAY_NO)
WHERE TEL_LINE_NO = NVL(DN, TEL_LINE_NO)
AND GATEWAY_NO = NVL(GN, GATEWAY_NO)
AND IP = NVL(ADDRESS, IP)
AND BUILD_CODE = NVL(ADDRESSCODE, BUILD_CODE)
AND IAD_NAME = NVL(IAD, IAD_NAME)
AND PORT = NVL(PORT, PORT)
AND ORIG_GREP = NVL(INTRUNKNUM, ORIG_GREP)
AND TERM_GREP = NVL(OUTTRUNKNUM, TERM_GREP)
AND ORIG_MEM = NVL(INTRUNKMEM, ORIG_MEM)
AND TERM_MEM = NVL(OUTTRUNKMEM, TERM_MEM);我的原意是这样,nvl(a,b)里,a是我输入的参数,我是想当我不输入参数时,可以忽略这个条件,例如是where 1=1.
但执行时,执行了N久也没结果。当我把AND ORIG_MEM = NVL(INTRUNKMEM, ORIG_MEM) AND TERM_MEM = NVL(OUTTRUNKMEM, TERM_MEM) 这两个条件注释掉后,
结果很快出来。但一加上后很慢,等了一小时也没有出来。请问这是什么原因呢?
解决方案 »
- 关于oracle变量表和sql server变量表。
- 10G中,CONNECT角色只有CREATE SESSION权限了?
- Oracle 9i与10g上运行Select Count(*)为何相关好多时间?
- Oralce9i改IP后监听起不来
- 关于SUBSTR的问题:ora-01722:无效数字
- 怎样入门Oracle数据库的学习?高人指点,介绍基本好书。
- oracle中建立数据库的sql语句时什么或者存储过程 ?谢谢!
- 送分问题(关于日期格式的,不知道放在这里适不适合,jsp+servlet+orcle),还请赐教!!!
- 简单问题!如何最简单的表示这个小问题?
- cx_oracle 求解 救救孩子吧
- 数据库连接出错
- Oracel中如何将long类型转换成varchar类型
if ADDRESS is not null then
sql=sql + '條件'這種方法沒有試過,不過我不想做得太麻煩,才采用上面的方法.
其實我也想知上面的方法問題出在哪里.
同时也不提倡你的写法--会消耗比较多CPU,特别是数据集比较大时候。