powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / переменная в запросе
7 сообщений из 7, страница 1 из 1
переменная в запросе
    #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
переменная в запросе
    #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
переменная в запросе
    #39841454
extra_dj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Лузанов,
Спасибо большое!
...
Рейтинг: 0 / 0
переменная в запросе
    #39842219
Фотография torbasow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
extra_dj,

Я что-то не уловил, зачем Вам вообще format. Почему не EXECUTE … USING … ?
...
Рейтинг: 0 / 0
переменная в запросе
    #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
переменная в запросе
    #39843036
extra_dj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Troglodit,
такое условие
...
Рейтинг: 0 / 0
переменная в запросе
    #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
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / переменная в запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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