[英]Oracle PL/SQL Query Order By issue with Distinct
有誰知道這個查詢有什么問題?
SELECT DISTINCT c.CN as ClaimNumber,
a.ItemDate as BillReceivedDate, c.DTN as
DocTrackNumber
FROM ItemData a,
ItemDataPage b,
KeyGroupData c
WHERE a.ItemTypeNum in (112, 113, 116, 172, 189)
AND a.ItemNum = b.ItemNum
AND b.ItemNum = c.ItemNum
ORDER BY a.DateStored DESC;
我在職業生涯的大部分時間都做過T-Sql,這對我來說是正確的,但是這個查詢是針對Oracle數據庫而Toad只是將光標放在Order By部分的a.DateStored上。 我確信這對於任何做PL / SQL的人都是基本的。
謝謝!
[編輯]為了將來參考,SQL * Plus給出的錯誤是:“ORA-01791:不是SELECTed表達式”
您需要修改查詢:
SELECT DISTINCT c.CN as ClaimNumber,
a.ItemDate as BillReceivedDate, c.DTN as
DocTrackNumber, a.DateStored
FROM ItemData a,
ItemDataPage b,
KeyGroupData c
WHERE a.ItemTypeNum in (112, 113, 116, 172, 189)
AND a.ItemNum = b.ItemNum
AND b.ItemNum = c.ItemNum
ORDER BY a.DateStored DESC;
在進行DISTINCT時,您的訂單需要是所選列之一。
沒關系,在SQL Plus中執行給了我一個更豐富的答案。 DateStored需要在select語句中,所以這適用:
SELECT DISTINCT c.CN as ClaimNumber,
a.ItemDate as BillReceivedDate,
c.DTN as DocTrackNumber,
a.DateStored
FROM ItemData a,
ItemDataPage b,
KeyGroupData c
WHERE a.ItemTypeNum in (112, 113, 116, 172, 189)
AND a.ItemNum = b.ItemNum
AND b.ItemNum = c.ItemNum
ORDER BY a.DateStored DESC;
我相信order by子句的元素也必須在select子句中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.