[英]If I run a SQL statement multiple times with row limit, will I get the same result each time?
鑒於我的陳述保持不變。 給定有15000個可用行,但我對rownum
進行了行限制,是否每次都會獲得相同的輸出?
我正在使用的示例SQL:
SELECT distinct
TO_CHAR(S.DID),
TO_CHAR(S.DPERMCONTAINER),
S.DBARCODE,
S.DMEDIATYPE,
S.DDOCTITLE,
S.XCOMMENTS,
rm.xcategoryid,
s.xdivision,
S.XPROJECTNAME,
S.XLEGACYPROJECTNAME,
S.XLABELNOTE,
S.XPROJECTENDDATE,
S.XEVENTDATE
FROM
PRD64_URMSERVER.EXTITEMS S
left join prd64_urmserver.extitemsrm rm on s.did = rm.did
WHERE
S.DMEDIATYPE = 'Folder'
AND S.DPERMCONTAINER IN
(SELECT distinct TO_CHAR(S.DID)
FROM PRD64_URMSERVER.EXTITEMS S
left join DIDV V on s.did = v.did
left join prd64_urmserver.extitemsrm rm on s.did = rm.did
WHERE v.did IS NULL
and RM.xDerivedIsFrozen = '0'
AND s.dmediatype = 'Box'
and S.XLABELNOTE = 'DISP: GPO-CRM-US-ATT-20160415-09'
and s.xprojectenddate < to_date('05/25/2006', 'mm-dd-yyyy')
and rownum <= 5000)
UNION
(SELECT distinct
TO_CHAR(S.DID),
TO_CHAR(S.DPERMCONTAINER),
S.DBARCODE,
S.DMEDIATYPE,
S.DDOCTITLE,
S.XCOMMENTS,
rm.xcategoryid,
s.xdivision,
S.XPROJECTNAME,
S.XLEGACYPROJECTNAME,
S.XLABELNOTE,
S.XPROJECTENDDATE,
S.XEVENTDATE
FROM
PRD64_URMSERVER.EXTITEMS S
left join DIDV V on s.did = v.did
left join prd64_urmserver.extitemsrm rm on s.did = rm.did
WHERE
v.did IS NULL
and RM.xDerivedIsFrozen = '0'
AND s.dmediatype = 'Box'
and S.XLABELNOTE = 'DISP: GPO-CRM-US-ATT-20160415-09'
and s.xprojectenddate < to_date('05/25/2006', 'mm-dd-yyyy')
and rownum <= 5000);
請讓我知道我能否再詳細一點。
僅當您添加ORDER BY
子句時,結果始終處於相同順序。 否則,結果通常以不確定的順序返回,這通常是索引使用或統計的結果。
根據Ask Tom的介紹,您每次不會獲得相同的行。 即使您下訂單也不會。 在對行進行排序之前先對rownum求值。 如果每次都需要相同的行,則需要在子查詢中對其進行排序:
select * from
(
SELECT distinct
TO_CHAR(S.DID),
TO_CHAR(S.DPERMCONTAINER),
S.DBARCODE,
S.DMEDIATYPE,
S.DDOCTITLE,
S.XCOMMENTS,
rm.xcategoryid,
s.xdivision,
S.XPROJECTNAME,
S.XLEGACYPROJECTNAME,
S.XLABELNOTE,
S.XPROJECTENDDATE,
S.XEVENTDATE
FROM
PRD64_URMSERVER.EXTITEMS S
left join prd64_urmserver.extitemsrm rm on s.did = rm.did
WHERE
S.DMEDIATYPE = 'Folder'
AND S.DPERMCONTAINER IN
(SELECT distinct TO_CHAR(S.DID)
FROM PRD64_URMSERVER.EXTITEMS S
left join DIDV V on s.did = v.did
left join prd64_urmserver.extitemsrm rm on s.did = rm.did
WHERE v.did IS NULL
and RM.xDerivedIsFrozen = '0'
AND s.dmediatype = 'Box'
and S.XLABELNOTE = 'DISP: GPO-CRM-US-ATT-20160415-09'
and s.xprojectenddate < to_date('05/25/2006', 'mm-dd-yyyy')
order by ...)
where rownum <= 5000
UNION
select * from
(SELECT distinct
TO_CHAR(S.DID),
TO_CHAR(S.DPERMCONTAINER),
S.DBARCODE,
S.DMEDIATYPE,
S.DDOCTITLE,
S.XCOMMENTS,
rm.xcategoryid,
s.xdivision,
S.XPROJECTNAME,
S.XLEGACYPROJECTNAME,
S.XLABELNOTE,
S.XPROJECTENDDATE,
S.XEVENTDATE
FROM
PRD64_URMSERVER.EXTITEMS S
left join DIDV V on s.did = v.did
left join prd64_urmserver.extitemsrm rm on s.did = rm.did
WHERE
v.did IS NULL
and RM.xDerivedIsFrozen = '0'
AND s.dmediatype = 'Box'
and S.XLABELNOTE = 'DISP: GPO-CRM-US-ATT-20160415-09'
and s.xprojectenddate < to_date('05/25/2006', 'mm-dd-yyyy')
order by ...)
where rownum <= 5000;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.