2015-09-07 124 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 

在这里,您可以更新相同的表。无需创建临时表/中间表。