Re: Let-bindings in SQL statements

Поиск
Список
Период
Сортировка
От Szymon Guz
Тема Re: Let-bindings in SQL statements
Дата
Msg-id CAFjNrYuZczVbVJ6sBSw3psAg9qYk1qHoqhFhD_hFLiXJKcw43g@mail.gmail.com
обсуждение исходный текст
Ответ на Let-bindings in SQL statements  (Jon Smark <jon.smark@yahoo.com>)
Список pgsql-general


On 26 January 2012 15:37, Jon Smark <jon.smark@yahoo.com> wrote:
Hi,

Is it possible to do the equivalent of let-bindings in a pure SQL function?
I have a SELECT that invokes "now" multiple times.  It would be nicer
to do it only once and reuse the value.  Something like this:

LET right_now = SELECT now () IN
SELECT * FROM my_table WHERE right_now >= start AND ...

In PL/pgSQL this is easy, but I wonder about SQL...

Thanks in advance!
Jon


In fact now() is a little bit tricky here. now() returns the time when the transaction started, so if you run `begin;` and call now() multiple times (even in different queries, but within the same transaction), the function will return the same value.

regards
Szymon

В списке pgsql-general по дате отправления:

Предыдущее
От: Jon Smark
Дата:
Сообщение: Let-bindings in SQL statements
Следующее
От: Volodymyr Kostyrko
Дата:
Сообщение: Re: How to push predicate down