Ú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
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Telekom mobilszolgáltatások
- VPS - Melyik szolgáltatót?
- MWC 2026: Műholdakkal tömné ki a Telekom a lefedettségi réseket
- Tarr Kft. kábeltv, internet, telefon
- Samsung Galaxy S23 Ultra - non plus ultra
- Mibe tegyem a megtakarításaimat?
- Tápos kibeszélő offtopik
- Apple AirPods Pro (2. generáció) - csiszolt almaságok
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- További aktív témák...
- Apple iPhone 6/6 Plus szerviz alkatrészek, készletről akár másnapra!
- Lenovo Thunderbolt 3 kábel (4X90U90617)
- Eladó Apple iPhone 11 Pro Max 64GB Arany / 12 hónap jótállás
- 240 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 9 7945HX, RTX 4070 (ELKELT)
- HIBÁTLAN iPhone 14 Pro Max 256GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4513
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


Igazából egy beléptető rendszer (Seawing) programját akarom feltenni, hogy gyakorlatozzak rajta, de az egész adatbázisa ezen alapszik. Én meg ehhez h.lye vagyok és majd jövök jó kis kérdésekkel. 
