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 26 27 28
| With A as
(
select level as id,
case mod(trunc((level-1)/4), 3) when 2 then 20 else mod(trunc((level-1)/4), 3) end as c1,
mod(trunc((level-1)/2), 2) as c2,
mod(level-1, 2) as c3
from dual
connect by level <= 12
)
select id, c1, c2, c3,
case when (c1 = 1 and c3 != 0 or c1 = 20 and c2 = 0 and c3 != 0) then 'True' else 'False' end as p1,
case when ((c1 = 1 or c1 = 20 and c2 = 0) and c3 != 0) then 'True' else 'False' end as p2,
case when (c1 = 1 or (c1 = 20 and c2 = 0)) and c3 <> 0 then 'True' else 'False' end as p3
from A;
ID C1 C2 C3 P1 P2 P3
1 0 0 0 False False False
2 0 0 1 False False False
3 0 1 0 False False False
4 0 1 1 False False False
5 1 0 0 False False False
6 1 0 1 True True True
7 1 1 0 False False False
8 1 1 1 True True True
9 20 0 0 False False False
10 20 0 1 True True True
11 20 1 0 False False False
12 20 1 1 False False False |
Partager