【发布时间】:2017-09-11 13:42:30
【问题描述】:
当我对输入参数ABC 执行查询时,它返回两个值(Partner, Smith);每当返回这两个值中的两个值时,Smith 将是一个强制值,该值将被返回。
但每当输入参数为'xyz' 执行相同的查询时,它只返回一个值。
现在我的要求是,每当我执行查询时,如果它返回这两个值中的两个值,那么只有 SMITH 必须在输出中返回,如果相同的查询返回一个输出值,那么它应该显示 loutput 值本身。
以下查询满足我的要求的第一部分,但它不满足我的要求的第二部分。只要输出值数量为 1,它就会返回“Null”值,而不是显示 1output 值。
SELECT R.REGION_GID
FROM GTM_TRANSACTION T,
GTM_TRANSACTION_INVOLVED_PARTY P,
CONTACT C,
LOCATION L,
REGION_DETAIL R
WHERE T.GTM_TRANSACTION_GID=P.GTM_TRANSACTION_GID
AND R.COUNTRY_CODE3_GID = L.COUNTRY_CODE3_GID
AND R.REGION_GID LIKE 'SSN/BP.GTM_COMPL%'
AND L.LOCATION_GID = C.LOCATION_GID
AND P.INVOLVED_PARTY_CONTACT_GID=C.CONTACT_GID
AND P.INVOLVED_PARTY_QUAL_GID='SHIP_FROM'
AND T.GTM_TRANSACTION_GID=$SHIP_FORM
INTERSECT
SELECT R.REGION_GID
FROM GTM_TRANSACTION T,
GTM_TRANSACTION_INVOLVED_PARTY P,
CONTACT C,
LOCATION L,
REGION_DETAIL R
WHERE T.GTM_TRANSACTION_GID=P.GTM_TRANSACTION_GID
AND R.COUNTRY_CODE3_GID = L.COUNTRY_CODE3_GID
AND R.REGION_GID ='SSN/BP.GTM_COMPL_NO_CODING'
AND L.LOCATION_GID = C.LOCATION_GID
AND P.INVOLVED_PARTY_CONTACT_GID=C.CONTACT_GID
AND P.INVOLVED_PARTY_QUAL_GID='SHIP_FROM'
AND T.GTM_TRANSACTION_GID=$SHIP_FROM
【问题讨论】:
-
那么这个过程中的'SMITH'是什么?
标签: sql oracle set-operations