Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / listagg выдает пустую строку / 3 сообщений из 3, страница 1 из 1
13.01.2021, 09:46
    #40035255
core003
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg выдает пустую строку
Добрый день

При использовании оператора listagg, если под условие в where нет подходящих id, то есть результат пустой, выводит пустую строку без значения.
Как ее заставить вообще ничего не выводить?

Select listagg(id, ', ')
From table
Where name in ('A', 'B', 'C')
...
Рейтинг: 0 / 0
13.01.2021, 09:54
    #40035260
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg выдает пустую строку
core003,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select count(*) cnt from dual where 1=0;

       CNT
----------
         0

SQL> select count(*) cnt from dual where 1=0 group by dummy;

no rows selected



Т.к. уровень группировки не задан, то агрегат строится поверх всего результата запроса, даже если он пуст.
...
Рейтинг: 0 / 0
13.01.2021, 11:09
    #40035305
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
listagg выдает пустую строку
core003,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SQL> ed
Wrote file afiedt.buf

  1  Select listagg(ename, ', ') within group(order by null) l
  2  From emp
  3* Where deptno=-1
SQL> /

L
--------------------------------------------------------------------------------


SQL> ed
Wrote file afiedt.buf

  1  Select listagg(ename, ', ') within group(order by null) l
  2  From emp
  3  Where deptno=-1
  4* group by null
SQL> /

no rows selected

SQL>



.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / listagg выдает пустую строку / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]