Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Конкатенация строк  [new]
Eva_2006
Member

Откуда:
Сообщений: 256
Добрый день.

Стоит задача - объединить все поля в строке таблицы (20 шт) в одну строку.

Можно ли это как-то сделать без a.b||a.с**а.d....||a.z ? Перечислять все очень долго...

Есть ли какая-то универсальная функция для данных случаев?


Еще есть задача посчитать повторяющиеся строки в таблице. Именно для нее мне и нужно реализовать задачу 1. Т.к. потом я знаю, что делать...
25 апр 07, 09:39    [4066186]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2506
Eva_2006
Еще есть задача посчитать повторяющиеся строки в таблице. Именно для нее мне и нужно реализовать задачу 1. Т.к. потом я знаю, что делать...
Вот как раз для задачи поиска дубликатов конкатенация полей совершенно не нужна.
Тынц, читать до полного просветления
25 апр 07, 09:47    [4066224]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Eva_2006
Member

Откуда:
Сообщений: 256
Извините, но вариант

select *
from TEST_DUPLICATE
where value in (
  select value
  from TEST_DUPLICATE
  having count(*) > 1
  group by value
)
order by value;


мне не подходит. Ведь здесь выбираются дублирующиеся значения по полю value.
А у меня могут отличаться все поля! Мне нужно полное соответствие всех полей.

А писать что-то вроде:

select a.b, a.c, a.d..... a.z, count(*)
from a
group by a.b, a.c, a.d..... a.z
having count(*) > 1

совсем не хочется!
25 апр 07, 09:55    [4066276]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Mikst
Member

Откуда: Москва
Сообщений: 983
Eva_2006

А писать что-то вроде:

select a.b, a.c, a.d..... a.z, count(*)
from a
group by a.b, a.c, a.d..... a.z
having count(*) > 1

совсем не хочется!


Ага, пусть лучше сервер только и занимается тем, что строки склеивает.
плюс, подумайте о том что будет на таких значениях

1    25    AB     C
12    5     A    BC

есть copy-paste, а также user_tab_cols

ЗЫ: а потом удивляемся, почему же все так медленно работает. ничего личного.
25 апр 07, 10:01    [4066305]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Евгений_25
Member

Откуда: Харьков
Сообщений: 460
Eva_2006

А писать что-то вроде:

select a.b, a.c, a.d..... a.z, count(*)
from a
group by a.b, a.c, a.d..... a.z
having count(*) > 1

совсем не хочется!


Ну откуда такая лень берется :-)
25 апр 07, 10:03    [4066325]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Eva_2006
Member

Откуда:
Сообщений: 256
Я просто думала, что должна быть какая-нибудь функция, типа avg или sum....

Теперь понятно, что никак так не сделаешь :(

Что ж. Будем перечислять поля до упора...
25 апр 07, 10:07    [4066346]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Barmalei
Member

Откуда:
Сообщений: 83
Есть stragg :) вполне можно переписать и приделать свой разделитель
25 апр 07, 11:21    [4066968]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
nosorog
Guest
автор
должна же быть какая-нибудь функция, типа avg или sum....


вроде бы EXCEL умеет это делать... спросите на соседнем форуме MS OFFICE.
25 апр 07, 11:29    [4067044]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Dancing-master
Member

Откуда:
Сообщений: 20
Не понимаю зачем их склеивать?
[/src] select count(a) from (
            select distinct t.*
            from (
            select 1 a,1 b from dual 
            union all
            select 2 a,1 b from dual
            union all
            select 1 a,1 b from dual
            ) t
            )
[SRC oracle]
25 апр 07, 14:40    [4068817]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
ыссвы
Guest
Dancing-master
Не понимаю зачем их склеивать?
[/src] select count(a) from (
            select distinct t.*
            from (
            select 1 a,1 b from dual 
            union all
            select 2 a,1 b from dual
            union all
            select 1 a,1 b from dual
            ) t
            )
[SRC oracle]

задача выделить повторяющиеся строки, а не получить все имеющиеся варианты в единственном экземпляре

2 автор: странная задача.. или таблица скроее
25 апр 07, 14:49    [4068893]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Dancing-master
Member

Откуда:
Сообщений: 20
Извиняюсь, невнимательность
25 апр 07, 14:53    [4068920]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить