запросить данные - PullRequest
       7

запросить данные

0 голосов
/ 15 февраля 2020

у меня есть данные в таблице, подобной этой

insert into mytable (col1,col2,col3,col4) values(a,2,100,501);
insert into mytable (col1,col2,col3,col4) values(a,4,200,555);
insert into mytable (col1,col2,col3,col4) values(a,3,80,500);
insert into mytable (col1,col2,col3,col4) values(a,3,44,443);

Теперь я хочу, чтобы один выбор извлекал данные, подобные этой:

  • amnt1 будет назначен на col3, если col1 = a и col2 = 2.

  • amnt2 будет назначено на col3, если col1 = a и col2 = 3 и col4 = 500.

Результаты:

| amnt1 | amnt2 |
|---------------|
|   100 |    80 |

thnx

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

Это то, что вы хотите?

select
    (select col3 from mytable where col1 = 'a' and col2 = 2) amnt1,
    (select col3 from mytable where col1 = 'a' and col2 = 3 and col4 = 500) amnt2
from dual

Обратите внимание, что для этого требуется, чтобы только одна запись соответствовала двум наборам условий. В случае нескольких совпадающих записей вышеуказанный запрос вызовет ошибку времени выполнения; чтобы избежать этого, вы можете использовать условное агрегирование вместо:

select
    sum(case when col1 = 'a' and col2 = 2 then col3 end) amnt1,
    sum(case when col1 = 'a' and col2 = 3 and col4 = 500 then col3 end) amnt2
from mytable
0 голосов
/ 15 февраля 2020

выберите * из mytable m, где m.col3 = 'amnt1' и m.clo1 = 'a' и m.col2 = 2

...