Size: a a a

pgsql – PostgreSQL

2021 March 22

RL

Romka Lily in pgsql – PostgreSQL
Есть такая кверя сейчас кину кодом нужно ее обернуть в фунецию
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Просто пишете "вокруг":
CREATE OR REPLACE FUNCTION your_function_name() RETURNS TABLE (column1_name column1_type, ...)
LANGUAGE sql STABLE
AS $function$
<тут запрос>
$function$;
И всё.
источник

RL

Romka Lily in pgsql – PostgreSQL
А параметри которие я перндаю location_name как юзать?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Romka Lily
А параметри которие я перндаю location_name как юзать?
Какие параметры (вроде, в запросе параметров нет...)?
А так — указываете your_function_name(arg1_name arg1_type) и прямо его название используете в запросе.
источник

RL

Romka Lily in pgsql – PostgreSQL
Ага понял)) пробую уже))
источник

RL

Romka Lily in pgsql – PostgreSQL
Спасибо уже понял что и как делать сделал селект одной колонки и уже понятно как дальше)))
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Romka Lily
Спасибо уже понял что и как делать сделал селект одной колонки и уже понятно как дальше)))
Не за что! ;)
Кстати:
  created_at timestamp without time zone

Зря Вы это. См. https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_timestamp_.28without_time_zone.29
Да и вообще, лучше прочитать всю страницу, конечно.
источник

RL

Romka Lily in pgsql – PostgreSQL
О спасибо посмотрю))
источник

RL

Romka Lily in pgsql – PostgreSQL
А как передать optional аргумент?
источник

RL

Romka Lily in pgsql – PostgreSQL
И если он опшинал его надо вказовать как null или просто можно упустить?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Romka Lily
А как передать optional аргумент?
Вот так: (..., arg_optional int DEFAULT 50)
источник

RL

Romka Lily in pgsql – PostgreSQL
Ага понял спасибо)))очень помогли мне))
источник

DZ

Daniil Zobov in pgsql – PostgreSQL
всем привет

вопрос, умеет ли postgresql постпроцессинг like?

суть такая - код хранит в БД англоязычную строку string/enum, а внутри имеет русскоязычные наименования.

Возможно ли провернуть такой трюк с поиском по результату case через like?

select
s.hostname,
case
 
when s.status = 'new' then 'Новый'
 
when s.status = 'exists' then 'Существует'
 
when s.status = 'changing' then 'Изменение'
 
when s.status = 'deleting' then 'Удаление'
 
when s.status in ('new_deleted', 'deleted')  then 'Удален'
 
else s.status
end as status_text
from servers s
where status_text like '%ение%'

Ожидаю увидеть в качестве результата все записи со статусами Изменение и Удаление
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Daniil Zobov
всем привет

вопрос, умеет ли postgresql постпроцессинг like?

суть такая - код хранит в БД англоязычную строку string/enum, а внутри имеет русскоязычные наименования.

Возможно ли провернуть такой трюк с поиском по результату case через like?

select
s.hostname,
case
 
when s.status = 'new' then 'Новый'
 
when s.status = 'exists' then 'Существует'
 
when s.status = 'changing' then 'Изменение'
 
when s.status = 'deleting' then 'Удаление'
 
when s.status in ('new_deleted', 'deleted')  then 'Удален'
 
else s.status
end as status_text
from servers s
where status_text like '%ение%'

Ожидаю увидеть в качестве результата все записи со статусами Изменение и Удаление
Используйте вложенный запрос или CTE.
И при чём тут "постпроцессинг"? Это же просто логическая последовательность выполнения запросов, в "будущее" PostgreSQL не заглядывает. ;)
источник

DZ

Daniil Zobov in pgsql – PostgreSQL
Yaroslav Schekin
Используйте вложенный запрос или CTE.
И при чём тут "постпроцессинг"? Это же просто логическая последовательность выполнения запросов, в "будущее" PostgreSQL не заглядывает. ;)
что такое CTE?
источник

DZ

Daniil Zobov in pgsql – PostgreSQL
есть сложный путь через создание темповой таблицы из результатов этой выгрузки и дальше поработать с ней как обычно, но имхо проще отказаться от этой затеи)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Daniil Zobov
что такое CTE?
WITH cte_name AS (SELECT ...)
SELECT ..
FROM cte_name ...
источник

IK

Igor Komarov in pgsql – PostgreSQL
Daniil Zobov
всем привет

вопрос, умеет ли postgresql постпроцессинг like?

суть такая - код хранит в БД англоязычную строку string/enum, а внутри имеет русскоязычные наименования.

Возможно ли провернуть такой трюк с поиском по результату case через like?

select
s.hostname,
case
 
when s.status = 'new' then 'Новый'
 
when s.status = 'exists' then 'Существует'
 
when s.status = 'changing' then 'Изменение'
 
when s.status = 'deleting' then 'Удаление'
 
when s.status in ('new_deleted', 'deleted')  then 'Удален'
 
else s.status
end as status_text
from servers s
where status_text like '%ение%'

Ожидаю увидеть в качестве результата все записи со статусами Изменение и Удаление
а почему просто по like '%ing%' не это, не того?)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Daniil Zobov
есть сложный путь через создание темповой таблицы из результатов этой выгрузки и дальше поработать с ней как обычно, но имхо проще отказаться от этой затеи)
Нет, проще выучить хотя бы базовый SQL, IMNSHO. ;)
источник

DZ

Daniil Zobov in pgsql – PostgreSQL
Igor Komarov
а почему просто по like '%ing%' не это, не того?)
конечный юзверь видит в морде Новый, Существует, итп)
источник