- Huawei Watch GT 5 Pro - egészség + stílus
- Xiaomi 14T Pro - teljes a család?
- Xiaomi 15 - kicsi telefon nagy energiával
- Honor 200 - kétszázért pont jó lenne
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Magisk
- LG V50 ThinQ Dual Screen - az 5G ára
- LG Velvet (4G) - megelőzte a híre
- Mobilhasználat külföldön
- Samsung Galaxy A54 - türelemjáték
Új hozzászólás Aktív témák
-
bpx
őstag
válasz
DopeBob #3157 üzenetére
Akkor viszont:
with st as
(
select 'K10' as text from dual union all
select 'K12' as text from dual union all
select 'K13' as text from dual union all
select 'K99' as text from dual
),
data as
(
select 1 as value from dual
)
select
data.value,
st.text
from
st,
data
order by
data.value,
st.text
;
VALUE TEXT
---------- ----
1 K10
1 K12
1 K13
1 K99 -
tm5
tag
válasz
DopeBob #2939 üzenetére
A neten találtam, valszeg más szeparátorral is működhet, csak nem vagyok magam nagyon otthon a regexp-es kifejezésekben:
select REGEXP_SUBSTR(s, '[^.]+', 1, 1) a,
REGEXP_SUBSTR(s, '[^.]+', 1, 2) b,
REGEXP_SUBSTR(s, '[^.]+', 1, 3) c,
REGEXP_SUBSTR(s, '[^.]+', 1, 4) d
from (select 'hello.how.are.you' s from dual) -
bpx
őstag
válasz
DopeBob #2511 üzenetére
MySQL-es példát mutatsz, de CONNECT BY-t szeretnél használni, ami az "igazi" Oracle-ben van, MySQL-ben nincs, így maradjunk az Oracle-nél. A példádat kicsit kiegészítettem, mert ha csak két szintes a hierarchia, akkor túl triviális, még CONNECT BY sem kell.
create table table1 (id varchar2(10), part varchar2(100), qty int);
insert into table1 (id, part, qty) values ('1', '1--1', 2);
insert into table1 (id, part, qty) values ('1', '1--2', 4);
insert into table1 (id, part, qty) values ('1', '1--3', 8);
insert into table1 (id, part, qty) values ('1', '1--4', 5);
insert into table1 (id, part, qty) values ('1--1', '1--1--1', 2);
insert into table1 (id, part, qty) values ('1--1', '1--1--2', 2);
insert into table1 (id, part, qty) values ('1--1', '1--1--3', 2);
insert into table1 (id, part, qty) values ('1--2', '1--2--1', 2);
insert into table1 (id, part, qty) values ('1--3', '1--3--1', 2);
insert into table1 (id, part, qty) values ('1--4', '1--4--1', 3);
insert into table1 (id, part, qty) values ('1--4--1', '1--4--1--1', 7);
commit;Lekérdezés + eredmény:
select id, part, qty,
(select exp(sum(ln(t2.qty)))
from table1 t2
start with t2.id = t1.id and t2.part = t1.part
connect by prior id = part
) mqty
from table1 t1
start with id = '1'
connect by id = prior part;
ID PART QTY MQTY
---------- -------------------- ---------- ----------
1 1--1 2 2
1--1 1--1--1 2 4
1--1 1--1--2 2 4
1--1 1--1--3 2 4
1 1--2 4 4
1--2 1--2--1 2 8
1 1--3 8 8
1--3 1--3--1 2 16
1 1--4 5 5
1--4 1--4--1 3 15
1--4--1 1--4--1--1 7 105Ha csak azok érdekelnek, amelyek a hierarchia utolsó szintjén vannak:
select id, part, qty, mqty from (
select id, part, qty,
(select exp(sum(ln(t2.qty)))
from table1 t2
start with t2.id = t1.id and t2.part = t1.part
connect by prior id = part
) mqty,
connect_by_isleaf leaf
from table1 t1
start with id = '1'
connect by id = prior part)
where leaf = 1;
ID PART QTY MQTY
---------- -------------------- ---------- ----------
1--1 1--1--1 2 4
1--1 1--1--2 2 4
1--1 1--1--3 2 4
1--2 1--2--1 2 8
1--3 1--3--1 2 16
1--4--1 1--4--1--1 7 105 -
Apollo17hu
őstag
válasz
DopeBob #2417 üzenetére
Nem értem, ha feltételben kell használnod, akkor nem tudod megspórolni.
A &változó maga egyfajta tárolás, amikor beszúrod, egy hivatkozás kerül a kódba (nem tudom, helyes-e a megfogalmazás).
Én nem látom, hol lehetne rövidíteni a kódon (hacsaknem a szűrőfeltételeket fogalmazod át más logika mentén).
Új hozzászólás Aktív témák
Hirdetés
- Huawei Watch GT 5 Pro - egészség + stílus
- Fejhallgató erősítő és DAC topik
- exHWSW - Értünk mindenhez IS
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Milyen alaplapot vegyek?
- Autós topik
- A fociról könnyedén, egy baráti társaságban
- Windows 11
- The Division 2 (PC, XO, PS4)
- Mibe tegyem a megtakarításaimat?
- További aktív témák...
- BESZÁMÍTÁS! 4TB Samsung 870 EVO SATA SSD meghajtó garanciával hibátlan működéssel
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- BESZÁMÍTÁS! Gigabyte A620M R5 7500F 32GB DDR5 512GB SSD RX 6700 XT 12GB ZALMAN S3 TG CM 700W
- Álmodozol egy erősebb gamer élményről? Kamatmentes rèszletre is!
- Lenovo ThinkCentre M720q/ Dell OptiPlex 3060- 3070/ Hp EliteDesk 800 mini, micro PC-Számla/garancia
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest