报表中两种传空参数方式的区别
2014-11-14 14:05
211 查看
--两种传参数方式的区别
--费用采购接收单:CUX_COST_PURCHASE_REV_PKG
--CURSOR c_count(X_PF IN VARCHAR2)中如果用第一种 MSIB.SEGMENT1查出来不能为空值,
--对于按类别而不是按料号采购的就查不出数据(有物料类别,无料号)
AND MSIB.SEGMENT1 BETWEEN NVL(P_ITEM_NUM_F, MSIB.SEGMENT1) AND NVL(P_ITEM_NUM_T, MSIB.SEGMENT1) --不太耗资源
--如果用第二种就可以允许查出的MSIB.SEGMENT1为空
AND (MSIB.SEGMENT1 BETWEEN P_ITEM_NUM_F AND P_ITEM_NUM_T
OR (P_ITEM_NUM_F IS NULL OR P_ITEM_NUM_T IS NULL)) --耗资源
--推荐使用:
--(1)
AND decode(P_ITEM_NUM_F,null,'1',P_ITEM_NUM_F)=decode(P_ITEM_NUM_F,null,'1',MSIB.SEGMENT1)
--(2);MTLN.LOT_NUMBER可能为空值
AND (NVL(MTLN.LOT_NUMBER,'A')
BETWEEN NVL(P_LOT_NUMBER_FROM,NVL(MTLN.LOT_NUMBER,'A'))
AND NVL(P_LOT_NUMBER_TO,NVL(MTLN.LOT_NUMBER,'A')))
--费用采购接收单:CUX_COST_PURCHASE_REV_PKG
--CURSOR c_count(X_PF IN VARCHAR2)中如果用第一种 MSIB.SEGMENT1查出来不能为空值,
--对于按类别而不是按料号采购的就查不出数据(有物料类别,无料号)
AND MSIB.SEGMENT1 BETWEEN NVL(P_ITEM_NUM_F, MSIB.SEGMENT1) AND NVL(P_ITEM_NUM_T, MSIB.SEGMENT1) --不太耗资源
--如果用第二种就可以允许查出的MSIB.SEGMENT1为空
AND (MSIB.SEGMENT1 BETWEEN P_ITEM_NUM_F AND P_ITEM_NUM_T
OR (P_ITEM_NUM_F IS NULL OR P_ITEM_NUM_T IS NULL)) --耗资源
--推荐使用:
--(1)
AND decode(P_ITEM_NUM_F,null,'1',P_ITEM_NUM_F)=decode(P_ITEM_NUM_F,null,'1',MSIB.SEGMENT1)
--(2);MTLN.LOT_NUMBER可能为空值
AND (NVL(MTLN.LOT_NUMBER,'A')
BETWEEN NVL(P_LOT_NUMBER_FROM,NVL(MTLN.LOT_NUMBER,'A'))
AND NVL(P_LOT_NUMBER_TO,NVL(MTLN.LOT_NUMBER,'A')))
相关文章推荐
- mybatis两种接收参数的方式#{args}和${args}的区别小知识
- mybatis学习之路----#{}, ${}两种传参数方式的区别--附源码解读
- C++中参数传递的两种方式:传值与传址及它们的区别
- C++中参数传递的两种方式:传值与传址及它们的区别
- Java两种参数传递方式的区别
- ArcSde的两种连接方式、区别和一些常见安装问题
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- 开始一个线程两种方式的区别
- MVC中两种网页跳转方式的比较和区别
- ADO与ADO.NET两种数据访问方式区别
- 第2章 Java编程基础——FAQ2.16 在实现x和y相加时, x+=y和x=x+y两种实现方式有区别吗?
- ADO与ADO.NET两种数据访问方式区别
- ADO 与ADO.NET两种数据访问方式区别
- Reporting Service本地报表(rdlc)的两种方式
- ADO 与ADO.NET两种数据访问方式区别
- [vs2008环境]绑定水晶报表的两种方式(Pull和Push)
- ADO 与ADO.NET两种数据访问方式区别
- Javascript获取URL参数的两种方式
- 水晶报表在VS.NET中的两种操作方式及示例
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别