2017-02-13 78 views
0

我有以下查詢返回重複行重複行,如何擺脫掉他們:擺脫掉

select a.code, b.daytime, b.created_date 
from ov a, CURVE b 
where b.curve_object_id = a.object_id 
order by b.daytime 

什麼我要找的是提取對象名的最好方法(在我的情況下,它的代碼)從第二個表中的object_id在兩個表中是否相同?

+0

在TSQL有不同,但我不知道有關Oracle – Paparazzi

+0

這是不明確。什麼構成「重複」?在文本中,你說你想「提取」(無論是什麼意思)對象名稱(在你的情況下它是代碼),但在查詢中選擇代碼AND daytime AND created_date。那麼,它是什麼 - 你想要代碼,還是你想要所有三個?什麼是「重複」 - 具有相同代碼的行? (這不是「重複」的定義 - 重複是所有值相等的行 - 但我猜你可能以非技術方式使用「重複」)。 – mathguy

+0

抱歉不清楚dublicate行,表ov是僅存儲單個代碼名稱和關聯對象id與代碼名稱的表,表曲線是日常數據,因此它可以是具有相同代碼名稱但具有不同日期的多個記錄(白天列) 。 –

回答

0

您是否嘗試使用group by來消除重複的行,如下所示?

select a.code, b.daytime,b.created_date 
    from ov a, CURVE b 
    where b.curve_object_id=a.object_id 
    group by a.code, b.daytime,b.created_date 
    order by b.daytime 
+0

你有重複的行,因爲你有重複的數據?還是你有重複的行,因爲你有一個缺少連接條件?我已經看到這些情況中的任何一個已經被GROUP-BY「固定」的情況。對於小型測試數據集來說,它工作得很好。但是當數據集變大時,您可能會發現自己處於一個受到傷害的世界。也許你可以詳細說明你想要實現的目標? – BobC

+0

Tumen_t:謝謝,這工作正常。 BobC:表曲線中沒有重複的數據,可能是因爲我缺少連接條件。所以你所說的分組對大數據集來說不是好的選擇,那麼大數據集最適合什麼呢? –

0

始終使用現代顯式JOIN語法。

也就是說,你可以在你選擇使用distinct

select distinct a.code, 
    b.daytime, 
    b.created_date 
from ov a 
join CURVE b on b.curve_object_id = a.object_id 
order by daytime