powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / decode
7 сообщений из 7, страница 1 из 1
decode
    #39945526
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Функция decode используется в oracle, может есть такая же для PostgreSQL? Нужен чтобы листинг такой же был как и у decode
Код: sql
1.
DECODE( expression , search , result [, search , result]… [, default] )
...
Рейтинг: 0 / 0
decode
    #39945588
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неужели никто не знает функции которую можно использовать? case же я не смогу использовать в секции whare
...
Рейтинг: 0 / 0
decode
    #39945607
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt
case же я не смогу использовать в секции whare

Можете
...
Рейтинг: 0 / 0
decode
    #39945642
grgdvo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
см. расширение orafce. Вроде там ее реализовали также, как она работает в oracle.
...
Рейтинг: 0 / 0
decode
    #39945698
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Лузанов, как?
...
Рейтинг: 0 / 0
decode
    #39945699
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
postgres=# select * from (values (0),(1),(2)) t(c) 
where case when t.c = 0 then false 
           when t.c = 1 then true 
           else false 
      end;
 c 
---
 1
(1 row)
...
Рейтинг: 0 / 0
decode
    #39945795
Victor Nevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt, свою нарисуйте, типа такого ...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE OR REPLACE FUNCTION decode(VARIADIC anyarray) 
  RETURNS anyelement LANGUAGE sql AS
$BODY$
with a as (select $1 as v),
     b as (select case when array_upper(v, 1)%2=0 
                  then v[2:array_upper(v, 1)-1] 
                  else v[2:array_upper(v, 1)] 
                   end as a,
             case when array_upper(v, 1)%2=0 
                  then v[array_upper(v, 1)] 
                   end as d,
                  v[1] as v
            from a)
select coalesce((select a[i+1] from (select generate_series(1, array_upper(a, 1),2)) i(i) where a[i] = v), b.d) from b
$BODY$;
SELECT h, 
       decode(h::varchar, '1', 'I', '2', 'II', '3', 'III', '10', 'X', '24', 'XII', 'zz'),
       to_char(decode(h%12, 0, 12, h%12), 'RN')
  FROM generate_series(1,24) t (h);


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 h  | decode |     to_char
----+--------+----------------
  1 | I      |               I
  2 | II     |              II
  3 | III    |             III
  4 | zz     |              IV
  5 | zz     |               V
  6 | zz     |              VI
  7 | zz     |             VII
  8 | zz     |            VIII
  9 | zz     |              IX
 10 | X      |               X
 11 | zz     |              XI
 12 | zz     |             XII
 13 | zz     |               I
 14 | zz     |              II
 15 | zz     |             III
 16 | zz     |              IV
 17 | zz     |               V
 18 | zz     |              VI
 19 | zz     |             VII
 20 | zz     |            VIII
 21 | zz     |              IX
 22 | zz     |               X
 23 | zz     |              XI
 24 | XII    |             XII
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / decode
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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