Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Объявление переменной в простом селекте  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 536
Всем привет.В постгресе прям вот недавно.

Подскажите,пож-та,как мне интепретировать в постргесе это

Declare @I int
Set @i = 1
Select @i

в простом запросе?без создания ф-ии


Или вот такое

case when type='1'
then 'A'
when type='2' and Date is null
then 'B'
when type='3'
then 'Архив'
when type='C'
End

Сообщение было отредактировано: 30 окт 21, 22:22
30 окт 21, 22:20    [22390467]     Ответить | Цитировать Сообщить модератору
 Re: Объявление переменной в простом селекте  [new]
Maxim Boguk
Member

Откуда: По разному.
Сообщений: 5021
Максим Александровитч
Всем привет.В постгресе прям вот недавно.

Подскажите,пож-та,как мне интепретировать в постргесе это

Declare @I int
Set @i = 1
Select @i

в простом запросе?без создания ф-ии


Или вот такое

case when type='1'
then 'A'
when type='2' and Date is null
then 'B'
when type='3'
then 'Архив'
when type='C'
End


По первому запросу - в SQL нет переменных ни в стандарте ни в postgresql диалекте.
Если очень надо можно сэмулировать но вообще нужны переменные - пишите функцию они на другом языке пишутся.

Второе - ровно вот так как написали так и делать... case стандартный синтакис и вполне работает и в postgresql.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
30 окт 21, 22:59    [22390473]     Ответить | Цитировать Сообщить модератору
 Re: Объявление переменной в простом селекте  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 536
Maxim Boguk
Максим Александровитч
Всем привет.В постгресе прям вот недавно.

Подскажите,пож-та,как мне интепретировать в постргесе это

Declare @I int
Set @i = 1
Select @i

в простом запросе?без создания ф-ии


Или вот такое

case when type='1'
then 'A'
when type='2' and Date is null
then 'B'
when type='3'
then 'Архив'
when type='C'
End


По первому запросу - в SQL нет переменных ни в стандарте ни в postgresql диалекте.
Если очень надо можно сэмулировать но вообще нужны переменные - пишите функцию они на другом языке пишутся.

Второе - ровно вот так как написали так и делать... case стандартный синтакис и вполне работает и в postgresql.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


В общем,все через функции?
30 окт 21, 23:27    [22390477]     Ответить | Цитировать Сообщить модератору
 Re: Объявление переменной в простом селекте  [new]
Maxim Boguk
Member

Откуда: По разному.
Сообщений: 5021
Максим Александровитч

В общем,все через функции?


Что есть "всё"? больша часть веб-проектов без хранимых процедур живёт в вебе или использует их крайне локализованно и ограниченно (в триггерах и подобных местах где без них никак).
Сложная бизнес логика внутри базы - тоглько функции (но иногда можно просто в виде запроса написать даже очень сложную логику).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
30 окт 21, 23:37    [22390480]     Ответить | Цитировать Сообщить модератору
 Re: Объявление переменной в простом селекте  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 536
Maxim Boguk
Максим Александровитч

В общем,все через функции?


Что есть "всё"? больша часть веб-проектов без хранимых процедур живёт в вебе или использует их крайне локализованно и ограниченно (в триггерах и подобных местах где без них никак).
Сложная бизнес логика внутри базы - тоглько функции (но иногда можно просто в виде запроса написать даже очень сложную логику).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Я не отношусь к тем,кто пользует веб-проекты)Я реплицирую опыт на постгрес из оракла и майков.И нахожу отличия.
Поэтому я тут - вопрошаю,как можно сделать простейшие вещи малой кровью.
Но постгрес,видимо,не про это
30 окт 21, 23:38    [22390483]     Ответить | Цитировать Сообщить модератору
 Re: Объявление переменной в простом селекте  [new]
Maxim Boguk
Member

Откуда: По разному.
Сообщений: 5021
Максим Александровитч
Maxim Boguk
пропущено...


Что есть "всё"? больша часть веб-проектов без хранимых процедур живёт в вебе или использует их крайне локализованно и ограниченно (в триггерах и подобных местах где без них никак).
Сложная бизнес логика внутри базы - тоглько функции (но иногда можно просто в виде запроса написать даже очень сложную логику).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Я не отношусь к тем,кто пользует веб-проекты)Я реплицирую опыт на постгрес из оракла и майков.И нахожу отличия.
Поэтому я тут - вопрошаю,как можно сделать простейшие вещи малой кровью.
Но постгрес,видимо,не про это


case в обычном sql есть без хранимых процедур...
Ну и есть ANSI SQL стандарт в котором переменных помоему вообще не предусмотрено было когда я последний раз туда смотрел.

PS: постейшие вещи переменных в SQL логике не требуют (а только прямых запросов в базу причём сгенерированных каким либо ORM типа хибернейта а не написанных руками).

PPS: можно использовать pl/pgsql без создания функций через разовые вызовы через DO для таких задач.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
30 окт 21, 23:48    [22390488]     Ответить | Цитировать Сообщить модератору
 Re: Объявление переменной в простом селекте  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 536
Maxim Boguk
Максим Александровитч
пропущено...


Я не отношусь к тем,кто пользует веб-проекты)Я реплицирую опыт на постгрес из оракла и майков.И нахожу отличия.
Поэтому я тут - вопрошаю,как можно сделать простейшие вещи малой кровью.
Но постгрес,видимо,не про это


case в обычном sql есть без хранимых процедур...
Ну и есть ANSI SQL стандарт в котором переменных помоему вообще не предусмотрено было когда я последний раз туда смотрел.

PS: постейшие вещи переменных в SQL логике не требуют (а только прямых запросов в базу причём сгенерированных каким либо ORM типа хибернейта а не написанных руками).

PPS: можно использовать pl/pgsql без создания функций через разовые вызовы через DO для таких задач.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru



PPS: можно использовать pl/pgsql без создания функций через разовые вызовы через DO для таких задач.

Во как? мне нужно тупо отладить условия...но писать функцию для этого,это слишком..
30 окт 21, 23:49    [22390491]     Ответить | Цитировать Сообщить модератору
 Re: Объявление переменной в простом селекте  [new]
Maxim Boguk
Member

Откуда: По разному.
Сообщений: 5021
Максим Александровитч,

https://www.postgresql.org/docs/12/sql-do.html

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
31 окт 21, 09:18    [22390524]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить