powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / listagg + substr
11 сообщений из 11, страница 1 из 1
listagg + substr
    #40035737
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день

Подскажите возможно ли такое сделать?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[SRC XML]with DT as
 (
 Select level as num,
 TO_CHAR(add_months(TRUNC(sysdate, 'mm'), 1-LEVEL), 'YYYY-MM-DD') as DATE_CH
 from dual
 connect by level<=12
 )
 
 Select LISTAGG('''' || REPLACE(DATE_CH, '''', '''''') || '''',',')
 WITHIN GROUP (ORDER BY DATE_CH) as TEMP_in_stmnt
 INTO V_VALUES
 FROM (SELECT DISTINCT DATE_CH FROM DT);

[/SRC]

На выходе получаю '01.01.2021', '01.02.2020', '01.03.2020', '01.04.2020'

Хочется получить на выходе
'01.01.2021' as m202001, '01.02.2020' as m202002, '01.03.2020' as m202003, '01.04.2020' as m202004
Пробовал запихнуть в listagg susbtr ругается что выражение DATE_CH должна быть const
...
Рейтинг: 0 / 0
listagg + substr
    #40035747
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

И в чём проблема привести поле к нужному виду в исходном подзапросе?
...
Рейтинг: 0 / 0
listagg + substr
    #40035748
PuM256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstu

Пробовал запихнуть

Код в студию.
...
Рейтинг: 0 / 0
listagg + substr
    #40035749
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
SQL> select to_char(sysdate, '''dd.mm.yyyy''" as m"yyyymm') d from dual;

D
-----------------------
'14.01.2021' as m202101
...
Рейтинг: 0 / 0
listagg + substr
    #40035987
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

а подскажи как на выходе получить '14.01.2021' as "2021_01"

пробовал

select to_char(sysdate, '''dd.mm.yyyy''" as ''"''yyyy_mm''"''') d from dual;

кавычки превратились в одинарные
...
Рейтинг: 0 / 0
listagg + substr
    #40036016
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

Открыть для себя ещё и функцию replace, например.
...
Рейтинг: 0 / 0
listagg + substr
    #40036018
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu
env,

а подскажи как на выходе получить '14.01.2021' as "2021_01"


to_char||' as "||to_char||'"'

.....
stax
...
Рейтинг: 0 / 0
listagg + substr
    #40036031
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

replace не помог
Можете полностью написать что вы имели ввиду?
...
Рейтинг: 0 / 0
listagg + substr
    #40036033
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,


Попробовал вот так - не выходит

Select to_char(sysdate, 'dd.mm.yyyy')||' as '||to_char('"||yyyy_mm) from dual
...
Рейтинг: 0 / 0
listagg + substr
    #40036035
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

все допер сделал
...
Рейтинг: 0 / 0
listagg + substr
    #40036038
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu

replace не помог

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> ed
Wrote file afiedt.buf

  1* select replace(to_char(sysdate, '''dd.mm.yyyy''" as ^"yyyy_mm"^"'),'^','"') d from dual
SQL> /

D
-------------------------
'15.01.2021' as "2021_01"



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


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