Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / переменная в запросе / 7 сообщений из 7, страница 1 из 1
25.07.2019, 14:49
    #39841434
extra_dj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная в запросе
Приветствую! Есть ли возможность в Постгресе использовать одну переменную несколько раз в одном запросе? например, я объявляю переменную с датой и мне необходимо вывести ее в селект и добавить в условии. пример:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare
  d1 varchar;
begin 
  d1 := (select to_char((:date_for_calc::varchar::date ),'YYYYMMDD'));

  execute format('
select %L, --здесь необходимо поставить дату с переменной
          someValue,
  from    as t1
where  t1.date_create::date = %L
group by 2
', d1);
end $$;


Спасибо!
...
Рейтинг: 0 / 0
25.07.2019, 15:09
    #39841449
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная в запросе
extra_dj,

Код: sql
1.
2.
3.
4.
5.
select format('Первый раз:%L, второй раз: %L', now(),now());
                                         format                                          
-----------------------------------------------------------------------------------------
 Первый раз:'2019-07-25 15:08:55.149779+03', второй раз: '2019-07-25 15:08:55.149779+03'
(1 row)
...
Рейтинг: 0 / 0
25.07.2019, 15:14
    #39841454
extra_dj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная в запросе
Павел Лузанов,
Спасибо большое!
...
Рейтинг: 0 / 0
27.07.2019, 21:10
    #39842219
torbasow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная в запросе
extra_dj,

Я что-то не уловил, зачем Вам вообще format. Почему не EXECUTE … USING … ?
...
Рейтинг: 0 / 0
28.07.2019, 01:29
    #39842240
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная в запросе
Я может чего то не понял, но что мешает просто сделать:
Код: sql
1.
2.
3.
4.
5.
select d1,
          someValue,
  from    as t1
where  t1.date_create::date = d1
group by 2


???
...
Рейтинг: 0 / 0
30.07.2019, 15:32
    #39843036
extra_dj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная в запросе
Troglodit,
такое условие
...
Рейтинг: 0 / 0
31.07.2019, 08:19
    #39843249
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная в запросе
Тогда лучше как в доке.
Код: sql
1.
2.
3.
EXECUTE 'SELECT count(*) FROM mytable WHERE inserted_by = $1 AND inserted <= $2'
   INTO c
   USING checked_user, checked_date;


В вашем случае, на мой взгляд, плохо, все.
Потенциальная SQL инъекция, возможная проблема с неожиданным преобразованием типов.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / переменная в запросе / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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