Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизДубликаты Найти похожие ветки
← →
Kirill © (2004-07-17 16:40) [0]Как получить записи в таблице
1 ID
2 NAME
только те, которые с одинаковым NAME.
Различаться могут в регистре
← →
P.N.P. © (2004-07-17 16:57) [1]select distinct UPPER(name) from MyTable,
но, если учесть, что UPPER работает только с
буржуйскими буквами - выход один - использовать
UDF, например RFunc. Или самому написать.
← →
Kirill © (2004-07-17 17:12) [2]
> select distinct UPPER(name) from MyTable
Это уберет повторы. Или я не прав?
Мне нужны только повторы.
← →
P.N.P. © (2004-07-17 17:18) [3]Если нужны только дубликаты - то
select UPPER(name) from MyTable
group by UPPER(name)
having count (UPPER(name)) > 1
← →
P.N.P. © (2004-07-17 17:21) [4]Первый вариант выберет без ненужных повторов ВСЕ записи,
второй - выберет в единственном экземпляре только те, где
есть повторы
← →
Kirill © (2004-07-17 17:33) [5]EMS IB/FB Manager выдает ошибку
fmSQLEditor.Query:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
← →
P.N.P. © (2004-07-17 17:36) [6]Возможно у тебя не все выбираемые поля занесены в group by.
Покажи текст запроса
← →
Kirill © (2004-07-17 17:41) [7]
> Возможно у тебя не все выбираемые поля занесены в group
> by.
> Покажи текст запроса
select id, name from tbluser
group by upper(name)
having count(upper(name)) > 1
← →
Sergey Masloff (2004-07-17 17:48) [8]А с каких пор IB6 научился GroupBy по функциям делать?
← →
P.N.P. © (2004-07-17 17:49) [9]select id, name from tbluser
group by id,upper(name)
having count(upper(name)) > 1
но, если id- содержит уникальные значения, то ничего не получится.
Что бы выбрать в таком случае еще и id - придется сделать процедуру
типа
CREATE PROCEDURE NEW_PROCEDURE
RETURNS (
ID INTEGER,
NAME VARCHAR(100))
AS
begin
for
select RUPPER(name) from tbluser
group by RUPPER(name)
having count (RUPPER(name)) > 1
into :NAME do
begin
select MIN(id) from tbluserwhere RUPPER(tbluser.name)=:NAME into :ID;
suspend;
end
end
← →
Kirill © (2004-07-17 18:14) [10]Большое спасибо за советы. Вот что я уе сам написал по предыдущему сообщению:
select id, name from tbluser
where name in (select name from tbluser
group by upper(user)
having count (upper(user)) > 1)
order by user, id
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c