刚看到Where 1 =1 这个语句。说是为了动态SQL 方便使用的。 但是下面的语句,没有使用动态SQL,还有必要使用Where 1 =1 语句吗 ?
另外在这个帖子中(http://www.itpub.net/forum.php?m ... 6672&highlight=)4楼,看大师说,
如果里层有排序,必须先过一遍才能选中第一个。
这个SQL中Where 1= 1 有必要吗 ?里面就有排序 。 pub讨论下,
快下班了。明天我也试验下。
WHERE1 = 1
ANDAIA.INVOICE_ID = AIL.INVOICE_ID
ANDAIL.RCV_SHIPMENT_LINE_ID = RSL.SHIPMENT_LINE_ID
ANDRSH.SHIPMENT_HEADER_ID = RCT.SHIPMENT_HEADER_ID
ANDRSL.SHIPMENT_LINE_ID = RCT.SHIPMENT_LINE_ID
ANDRSH.SHIPMENT_HEADER_ID = RSL.SHIPMENT_HEADER_ID
ANDPOH.PO_HEADER_ID = RSL.PO_HEADER_ID
ANDPOL.PO_LINE_ID = RSL.PO_LINE_ID
ANDPR.PO_RELEASE_ID(+) = RSL.PO_RELEASE_ID
ANDPOLL.LINE_LOCATION_ID = RSL.PO_LINE_LOCATION_ID
ANDPOH.VENDOR_ID = PV.VENDOR_ID(+)
ANDPOH.VENDOR_SITE_ID = PVS.VENDOR_SITE_ID(+)
ANDPOL.ITEM_ID = MSI.INVENTORY_ITEM_ID
ANDRSL.TO_ORGANIZATION_ID = MSI.ORGANIZATION_ID
ANDRCT.TRANSACTION_TYPE = 'RETURN TO VENDOR'
ANDAP_INVOICES_PKG.GET_APPROVAL_STATUS(
AIA.INVOICE_ID,
AIA.INVOICE_AMOUNT,
AIA.PAYMENT_STATUS_FLAG,
AIA.INVOICE_TYPE_LOOKUP_CODE)'APPROVED'
ANDAIL.AMOUNT0
ANDAIA.INVOICE_NUM= P_INV_NUM
) TMPV
GROUP BY TMPV.INVOICE_NUM,
TMPV.PO_NUM,
TMPV.ITEM,
TMPV.UOM ,
TMPV.CURRENCY_CODE,
TMPV.PO_UNIT_PRICE,
TMPV.VENDOR_NUM,
TMPV.VENDOR_NAME,
TMPV.VENDOR_SITE
ORDER BY TMPV.VENDOR_NUM,TMPV.VENDOR_SITE,TMPV.ITEM;复制代码
|