Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- Lalikiraly: Macbook NEO 2
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Gurulunk, WAZE?!
- Lalikiraly: Mercis kalandok - Huszonnyolcadik rész - Az újrakezdés
- creation: Elég lett abból, hogy a nagy gépeim nem képesek behúzni a filamentet
- MasterDeeJay: Intel Optane M10: mire lehet használni?
Új hozzászólás Aktív témák
-
#65304576
törölt tag
Eltartott egy ideig, mire értelmeztem, de azt hiszem, értem.
Tehát van egy többé-kevésbé bonyolult képleted (kivonás), amit egy csomó más helyen is használni szeretnél ugyanazon select-en belül, és ezért szeretnéd először kiszámolni, majd a többi oszlopnál is valamiféle változót használni.A probléma csak kényelmi és vizuális ("csúnyán néz ki"), performanciára nincs hatása, mert az első kivonás eredménye kvázi konstansként behelyettesítődik majd a többi képletbe is (a parser felismeri az azonos kifejezést).
Az Oracle-nek egyébként nincs inline változója, bár al-select-ekkel (inline view, vagy with ... as) megoldható a dolog, azzal igen valószínű, hogy csak rosszabbul jársz.
Szóval marad a ctrl+c / ctrl + v.
(Vagy a pl/sql, de az is lassabb lesz.)Ha a kifejezést máshol is használni kellene (pl. where-ben), akkor már esetleg lehet gondolkozni azon, hogy előre kiszámolni és primary key alapján visszakötni a főtáblához, immár egyszerű oszlopként. Pl.:
with sub_diff as ( select id, end_time - start_time mp_diff
from table1 where (end_time - start_time) < 5 )
select d.data1 / t.mp_diff, d.data2 / t.mp_diff, d.data3 / t.mp_diff
from sub_diff t, table1 d
where d.id = t.id -
Jester01
veterán
1. Az alias nem befolyásolja a where-t, ott attól még nyugodtan lehet használni az eredeti nevet is.
2. ez valami rettentő nagy eredményt ad: Ugyanis az al-selectben ha nem írod ki explicit a táblanevet/aliast akkor az a belső táblá(k)ra vonatkozik. Tehát tulajdonképpen azonosságot írtál (eltekintve attól, hogy NULL != NULL). Helyesen a külső selectben kell megadni tábla aliast és arra hivatkozni. Így ni:select bla, bla2, bla3, bla4,
(select count(*) from tabla where bla = kulso.bla) from tabla kulso where ...
Új hozzászólás Aktív témák
- Asus TUF F15 FX507ZC4 15.6" FHD IPS i5-12500H RTX 3050 16GB 512GB NVMe magyar vbill gar
- Dell Precision 7720,17.3",FHD,i7-7820HQ,16GB DDR4,256GB SSD,P3000 6GB VGA,WIN11
- iPhone 15 Pro Max 256GB Black Titanium Megkímélt, gyári állapot!
- TUF F17 FX707VU 17.3 FHD IPS i7-13620H RTX 4050 16GB 1TB NVMe magyar vbill gar
- Intel Core i7-7700K 4.2GHz (8M Cache, up to 4.50 GHz) LGA1151 Processzor
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- iPhone Xr 64GB 100% (3hónap Garancia)-ÚJ EREDETI AKKUMULÁTOR Gyűjtői darab (3hónap Garancia) - AKCIÓ
- 27% - Sapphire RX 9070 XT NITRO+ 16GB GDDR6 Videokártya! BeszámítOK
- HIBÁTLAN iPhone 14 Pro Max 256GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4370
- Apple MacBook Neo 13" 512GB Touch ID Indigó Bontatlan / 27% áfás ár
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Tehát van egy többé-kevésbé bonyolult képleted (kivonás), amit egy csomó más helyen is használni szeretnél ugyanazon select-en belül, és ezért szeretnéd először kiszámolni, majd a többi oszlopnál is valamiféle változót használni.
