Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Калдовство с цифрами  [new]
light_ret
Member

Откуда: г. Киев
Сообщений: 370
Здравствуйте!
Появилась интересная задачка:
существует столбец, который имеет записи со значениями "1" либо "2". Поле "намбер".
Необходимо, чтоб запрос выдавал ту же самую таблицу, но значения инвертировались(то есть вместо "1" ставилась "2", а вместо "2" ставилась "1").
Задачка не критичная, так как можно сделать это через "декод", но как насчет скорости.

Интересно, может кто-то знает другие методы???

Большое спасибо за любую подсказку!!!!!!!! :)
15 июн 07, 10:10    [4270427]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
gda
Member

Откуда:
Сообщений: 985
select decode(t, 1, 2, 1) from tmp
15 июн 07, 10:13    [4270450]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Гы
tst> create table t1 as select rownum r from dual connect by level<=2;

Table created.

tst> select r, 3-r from t1;

         R        3-R
---------- ----------
         1          2
         2          1
15 июн 07, 10:14    [4270454]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Да Вы - кАлдуны!
15 июн 07, 10:17    [4270489]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
light_ret
Member

Откуда: г. Киев
Сообщений: 370
Jannny
Да Вы - кАлдуны!


Да, прошу прощения!
Хотел написать каЛЛдовство!
15 июн 07, 10:42    [4270707]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
light_ret
Member

Откуда: г. Киев
Сообщений: 370
light_ret

существует столбец, который имеет записи со значениями "1" либо "2". Поле "намбер".


Ой, не верно пояснил!
Там много записей, которые принимают значение "1" либо "2".
15 июн 07, 10:47    [4270750]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
light_ret
light_ret

существует столбец, который имеет записи со значениями "1" либо "2". Поле "намбер".
Ой, не верно пояснил!
Там много записей, которые принимают значение "1" либо "2".
Это что-то меняет??
15 июн 07, 11:01    [4270862]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Вообще-то меняет
Теперь ПРИДЕТСЯ использовать CASE/DECODE

Jannny
Да Вы - кАлдуны!
Да... Так и дуем потихоньку
15 июн 07, 11:03    [4270879]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Elic
Member

Откуда:
Сообщений: 29988
Вячеслав Любомудров
Вообще-то меняет
Теперь ПРИДЕТСЯ использовать CASE/DECODE
С какой стати?
15 июн 07, 11:15    [4270956]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Ну, мы же не хотим, чтоб 0 в 3 превратился? (Это я по поводу своего примера)
15 июн 07, 11:19    [4270981]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Вячеслав Любомудров
Вообще-то меняет
Теперь ПРИДЕТСЯ использовать CASE/DECODE
С чего бы? Не говоря о том, что был первый ответ...
15 июн 07, 11:19    [4270982]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Вячеслав Любомудров
Ну, мы же не хотим, чтоб 0 в 3 превратился? (Это я по поводу своего примера)
Ну так автору-то pivot без надобности :) Откуда будет 0?
15 июн 07, 11:20    [4270991]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
light_ret
Member

Откуда: г. Киев
Сообщений: 370
Относительно CASE/DECODE понятно, и довольно удобоваримо, но есть ли возможность сделать иначе?
15 июн 07, 11:38    [4271128]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Elic
Member

Откуда:
Сообщений: 29988
light_ret
есть ли возможность сделать иначе?
Иначе чем разность? Зачем?!
mod(n, 2) + 1
bitand(n, 1) + 1
instr('21', n)
to_number(substr('21', n, 1))
to_number(translate(n, '12', '21'))
...
15 июн 07, 11:43    [4271183]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
light_ret
Member

Откуда: г. Киев
Сообщений: 370
Elic
light_ret
есть ли возможность сделать иначе?
Иначе чем разность? Зачем?!
mod(n, 2) + 1
bitand(n, 1) + 1
instr('21', n)
to_number(substr('21', n, 1))
to_number(translate(n, '12', '21'))
...



Ясно! :)
Всем БОЛЬШОЕ СПАСИБО!!!!!!!
15 июн 07, 11:45    [4271203]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
light_ret
light_ret

существует столбец, который имеет записи со значениями "1" либо "2". Поле "намбер".


Ой, не верно пояснил!
Там много записей, которые принимают значение "1" либо "2".
15 июн 07, 11:46    [4271209]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Вячеслав Любомудров
light_ret
light_ret

существует столбец, который имеет записи со значениями "1" либо "2". Поле "намбер".
Ой, не верно пояснил!
Там много записей, которые принимают значение "1" либо "2".
И что?
15 июн 07, 12:24    [4271554]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
OldOwl
Guest

  xmltype('<kaldovskoi_sparvochnik><n>2</n><n>1</n></kaldovskoi_sparvochnik>')
    .extract('/kaldovskoi_sparvochnik/n['|| n ||']/text()').GetNumberVal()

15 июн 07, 13:41    [4272229]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
light_ret
Относительно CASE/DECODE понятно, и довольно удобоваримо, но есть ли возможность сделать иначе?


with t as (select 1 a from dual
     union select 2 from dual)
select a, 1/least(a/2,2/a) b from t
15 июн 07, 15:39    [4273263]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Elic
Member

Откуда:
Сообщений: 29988
orawish
1/least(a/2,2/a)
2/a
15 июн 07, 15:55    [4273445]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Elic
orawish
1/least(a/2,2/a)
2/a

а least ?
15 июн 07, 17:08    [4274048]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Dacota
Member

Откуда: Днепропетровск
Сообщений: 71
with t as
(select 1 n from dual union all
select 2 n from dual
)
select n, 3 - n nn from t
15 июн 07, 17:50    [4274440]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
xymbo
Member

Откуда: Донской --> Москва
Сообщений: 2560
Dacota
with t as
(select 1 n from dual union all
select 2 n from dual
)
select n, 3 - n nn from t

Боян!
Вячеслав Любомудров
Гы
tst> create table t1 as select rownum r from dual connect by level<=2;

Table created.

tst> select r, 3-r from t1;

R 3-R
---------- ----------
1 2
2 1

15 июн 07, 17:54    [4274471]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Юлий
Member

Откуда:
Сообщений: 105
1/2 - power( -1 , t.value  )/2
16 июн 07, 11:24    [4275822]     Ответить | Цитировать Сообщить модератору
 Re: Калдовство с цифрами  [new]
Юлий
Member

Откуда:
Сообщений: 105
Юлий
1+1/2 - power( -1 , t.value  )/2

+1 забыл
16 июн 07, 11:26    [4275826]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить