![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление дублирующихся значений! [MSSQL]
Behemoth © (2003-10-28 08:52:00)
Задачка на сообразительность. Думаю каждый не раз сталкивался с этим.
Есть таблица (ID,Field1, Field2,...) в которой встречаются дублирующие значения Filed1. Как правильнее вывести все строки с дублирующимися значеними Field1?
Я, кроме как проверки в цикле по всем значениям, придумать ничего не смог. Есть ли другой вариант?
Behemoth (2003-10-28 10:10:00) [1]
Я знал что мне здесь помогут. Спасибо!
Johnmen (2003-10-28 10:04:00) [2]
>Жук © (28.10.03 10:02)
Ну невнимателен был... Так сразу бы и поправил...:)
Жук (2003-10-28 10:02:00) [3]
> Johnmen © (28.10.03 09:58) [6]
> Обоснуй.
count забыл во вложенном запросе :-)
Дуся (2003-10-28 10:02:00) [4]
Johnmen © (28.10.03 09:58)
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
paul_k (2003-10-28 10:02:00) [5]
1. Следующий запрос - сколько раз поле Field встречается в таблице Table
select Field,count(Field)
from Table
group by Field
having count(Field)>1
1. Следующий запрос - строки таблицы Table в которых есть дублированное значение Field
select * from table
where Field in (select t2.Field
from table t2
group by t2.Field
having count(t2.Field)>1)
Johnmen (2003-10-28 09:58:00) [6]
>Жук © (28.10.03 09:32)
Обоснуй.
Digitman (2003-10-28 09:33:00) [7]
тогда - вложенный запрос :
select * from table
where field1 in (
select Field1, count(Field1) from table
group by Field1
having count(Field1) > 1
)
order by Field1
Жук (2003-10-28 09:32:00) [8]
> Johnmen © (28.10.03 09:28) [3]
Не будет работать :-)))
Johnmen (2003-10-28 09:28:00) [9]
SELECT * FROM Table T1
WHERE 1<(SELECT * FROM Table T2 WHERE T1.Field1=T2.Field1)
Жук (2003-10-28 09:19:00) [10]
> Digitman © (28.10.03 09:06)
Не будет работать
Digitman (2003-10-28 09:06:00) [11]
select ID, Field1, Field2, ..., count(Field1)
from ТАБЛИЦА
group by Field1
having count(Field1) > 1
order by ...