2016-06-10 48 views
0

跳過重複值我在我的表中的數據是這樣的:有關Oracle SQL查詢需要在一列

CustID CUSTName 
10  Tony 
10  Jony 
10  Hony 
20  Bot 
20  Guly 
20  Easter 

我需要輸出象下面這樣:

custID Custname 
10  Tony 
     Jony 
     Hony 
20  Bot 
     Guly 
     Easter 
+1

在什麼工具 - SQL Plus? –

+0

是的東西使用SQL加 – Nag

回答

0

嘗試以下。

with src as 
(select 10 CustID, 'Tony' CUSTName 
    from dual 
    union all 
    select 10, 'Jony' 
    from dual 
    union all 
    select 10, 'Hony' 
    from dual 
    union all 
    select 20, 'Bot' 
    from dual 
    union all 
    select 20, 'Guly' 
    from dual 
    union all 
    select 20, 'Easter' 
    from dual) 

select case 
      when Rnum = 1 then 
      Custid 
     end CustId, CustName 
    from (select row_number() over(partition by custid order by custid) Rnum, 
       src. custId, Src. CustName 
      from Src) 

在這裏,我如果你使用SQL *使用row_number()解析函數

+0

分析功能看起來不錯謝謝米克朗 – Nag

+0

不客氣。你也應該考慮@Alex Poole的回答,我贊同他的觀點。 – mikron

1

Plus或SQL Developer,您可以使用內置的formatting options;在這種情況下,with break

BREAK命令默認在您指定的列或表達式中抑制重複值。因此,爲了抑制重複值在ORDER BY子句中指定一列,以最簡單的形式使用BREAK命令:

BREAK ON break_column 

所以你的情況:

break on custid 

select custid, custname 
from your_table 
order by custid; 

這ISN」你通常想做的事情是查詢本身的一部分;這是關於如何檢索到的數據由客戶端/報告/應用程序顯示,而不是如何查詢。