Hirdetés
- Fittyet hány a pesti napfényre a Honor 600
- Microsoft Rewards
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Bemutatkozott az Oppo kamerás csúcsmodellje
- Xiaomi 15T Pro - a téma nincs lezárva
- Apple iPhone 17 Pro Max – fennsík
- Macrodroid
- Távozik az Apple vezérigazgatója
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
Új hozzászólás Aktív témák
-
válasz
Iginotus
#3660
üzenetére
meh. egy frappáns tsql-es megoldás jutott eszembe erre, ott a newid-t checksumozva generáltunk egy random számot, amit a megfelelő méretűre faragtunk. de ez persze nem igazi random. oracle-ben a sys_guid() csinál hasonlót.
mondjuk én olyan állat vagyok, aki sqlben nem ír ciklust, mert tiltja a vallása. -
bpx
őstag
válasz
Iginotus
#3660
üzenetére
Az egy nem correlated subquery (magyarul még szebb: korrelált allekérdezés), ezért ami belül van, az egyszer lefut, és kívül mindenhova az ott kapott értéket használja. Lehet belőle correlated subquery-t csinálni valami értelmetlen feltétellel és akkor majd miden sorra újból kiértékelődik. Persze ez nem szép és kapásból odaírnám kommentbe, hogy ez miért van belegányolva. Vagy marad a ciklus, amit már első ránézésre is el lehet olvasni.
create table forge (row_id, code_neu) as select rownum, 0 from dual connect by level <= 10;
create table oe (orgeh_code) as select rownum from dual connect by level <= 4;
select * from forge;
ROW_ID CODE_NEU
---------- ----------
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
select * from oe;
ORGEH_CODE
----------
1
2
3
4
update forge set code_neu =
(
select orgeh_code from oe
----
where forge.row_id = forge.row_id
----
order by dbms_random.value fetch first 1 row only
)
where row_id between 1 and 9;
select * from forge;
ROW_ID CODE_NEU
---------- ----------
1 1
2 3
3 1
4 2
5 1
6 1
7 4
8 3
9 4
10 0 -
nyunyu
félisten
válasz
Iginotus
#3658
üzenetére
valami ilyesmi:
declare i number;
begin
for i in 1 .. 9 loop
update ...
where row_id=i
end loop;
end;Kevésbé procedurálisan gondolkozva persze meg lehet írni egy updatetel is, mivel van sorfolytonos IDd a táblán, amihez lehet row_number()-rel joinolni:
update sds.forge upd
set code_neu=
(select a.orgeh_code from
(select oe.*, row_number() rn from sds.oe
order by dbms_random.value) a
where a.rn=upd.row_id); -
Ispy
nagyúr
válasz
Iginotus
#2876
üzenetére
Milyen adatok ezek, hogy ilyen hosszúak? Nem lehetne a betöltés pillanatában ellenőrizni a keresési feltételeket? Vagy csinálni egy temp táblát, ahová eleve értelmezhető bontásban tárolnád az adatokat? És akkor arra lehetne keresni is.
A lényeg, hogy túl kevés az info a megoldáshoz.
-
bambano
titán
válasz
Iginotus
#2880
üzenetére
a másik ötlet, hogy két lépésben keresel, egyszer simán az adatokon, másodszor minden adatmező elejéről és végéről levágsz egy-egy stringet, ami olyan hosszú, mint a keresési string, ezeket megfelelően összekonkatenálod és ezen kerestetsz.
lehet, hogy erre akár egy nézettáblát is fel lehetne húzni.
-
bambano
titán
válasz
Iginotus
#2880
üzenetére
kérdés: ha olyan nagy mennyiségű adatot kell tárolnod, hogy úgyis eltöri az sql, akkor miért nem töröd a maximális mezőméret felére, és akkor tudnád konkatenálni a mezőket és simán ellenőrizni?
tehát pl. ha az ms sql 65536 bájtot tud tárolni egy mezőben (csak hasraütéssel, a példa kedvéért), és neked így kell 4 sor az adathoz, akkor miért nem veszed le a mezőméretet 32768-ra, akkor kellene 8 sor, viszont két egymás utáni sorban levő adatot egymás mellé tudnál rakni és akkor könnyen tudnál keresni.
Új hozzászólás Aktív témák
Hirdetés
- Kerékpárosok, bringások ide!
- HiFi műszaki szemmel - sztereó hangrendszerek
- Nyáron jön az AOC új, legfeljebb 720 Hz-es monitora
- Luck Dragon: Asszociációs játék. :)
- Autós topik
- Felhő alapú adattárolás (Dropbox, stb.)
- Jövedelem
- Apple MacBook
- A fociról könnyedén, egy baráti társaságban
- Soundbar, soundplate, hangprojektor
- További aktív témák...
- REVELAL K2Y-PRO16 16BIT ISA HANGKÁRTYA
- ÚJ! Raspberry Pi 4 Model B 4GB+táp+ ház+sd kártya+micro hdmi
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- Új! Kingston ValueRAM 8GB DDR4 3200MHz KVR32S22S8/8
- Számítógép, Laptop, I3-7.gen, 8GB DDR4, 240GB ssd, magyar bill, 15,6"-os Full HD kép, gyári töltő
- RÓZSASZÍN! -20%!!! MACBOOK NEO!!!! - MAGYAR BILLES! - HAJNALPÍR AJÁNDÉKKAL!
- GYÖNYÖRŰ iPhone 13 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS4522
- GYÖNYÖRŰ iPhone 12 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4567
- ÚJ Lenovo IdeaPad Slim 3 - 15.3" WUXGA - Snapdragon X X1-26-100 - 24GB - 1TB - Win11 - Garancia
- ÁRGARANCIA! Épített KomPhone i7 14700KF 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
![;]](http://cdn.rios.hu/dl/s/v1.gif)

