2015-09-07 122 views
0

我有一個表2欄是這樣的:如何刪除重複的列條目?

city_name  car_name 

Gurgaon   Alto 
Gurgaon   Mercedez Benz 
Gurgaon   Swift Dzire 
New Delhi  Alto 
New Delhi  Etios 
New Delhi  Mercedez Benz 
New Delhi  Swift Dzire 

我用group by標籤運行查詢作出這一點,但我的任務是與非重複的條目顯示一個表格。即我要展示我的表是這樣的:

city_name  car_name 

Gurgaon   Alto 
       Mercedez Benz 
       Swift Dzire 
New Delhi  Alto 
       Etios 
       Mercedez Benz 
       Swift Dzire 

我使用Microsoft SQL Server Management Studio中2014

+3

這樣做在你的程序邏輯,而不是在SQL –

+1

'ROW_NUMBER'然後檢查'CASE WHEN Rn = 1 THEN city_name ELSE''END' – Mihai

+0

你能舉個簡單的例子嗎? – AbhiArora

回答

2

這應該在前端/報告工具來完成,而不是使用SQL。如果你沒有選擇的餘地,試試這個

select case when sno=1 then city_name else '' end as city_name,car_name from 
(
select row_number() over (partition by city_name order by car_name) as sno, * from table 
) as t 
0
select city_name, (SELECT [car_name]+',' 
    FROM [myTable] AS [t1] 
    WHERE t1.[city_name] = t2.[city_name] 
    FOR XML PATH('')) AS cars 
    FROM [MyTable] AS [t2] 
GROUP BY [t2].[city_name] 

,可隨時更換,(或其他任何字符串,你可以使用)在您的顯示介質用換行符。

0

您可以使用下面的代碼:

;with CTE as 
(
select row_number() over (partition by city_name order by car_name) as rn, * from table 
) 

Update CTE 
set city_name=' ' 
where rn > 1 

在這裏,您可以更新相同的表。無需創建臨時表/中間表。