Как объявить переменную в запросе PostgreSQL

>>> '%g' % 0
'0'
>>> '%g' % 0.0
'0'
>>> '%g' % 0.1
'0.1'
>>> '%g' % 1.0
'1'
202
задан ypercubeᵀᴹ 10 November 2016 в 23:49
поделиться

2 ответа

В PostgreSQL такой возможности нет. Вы можете сделать это только в pl / PgSQL (или другом pl / *), но не в простом SQL.

Исключением является запрос WITH () , который может работать как переменная или даже как кортеж переменных. Это позволяет вам вернуть таблицу временных значений.

WITH master_user AS (
    SELECT
      login,
      registration_date
    FROM users
    WHERE ...
)

SELECT *
FROM users
WHERE master_login = (SELECT login
                      FROM master_user)
      AND (SELECT registration_date
           FROM master_user) > ...;
94
ответ дан 23 November 2019 в 04:59
поделиться

Использование таблицы Temp вне pl / PgSQL

Помимо использования pl / pgsql или другого языка pl / *, как было предложено, это единственная другая возможность, о которой я мог подумать.

begin;
select 5::int as var into temp table myvar;
select *
  from somewhere s, myvar v
 where s.something = v.var;
commit;
20
ответ дан 23 November 2019 в 04:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: