Hirdetés
- Luck Dragon: Asszociációs játék. :)
- creation: Elég lett abból, hogy a nagy gépeim nem képesek behúzni a filamentet
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Elektromos rásegítésű kerékpárok
- gban: Ingyen kellene, de tegnapra
- hcl: GPT diszk kisebbre klónozása
- lkristóf: Prohardver fórum userscript – hogy lásd, mikor neked válaszoltak
- Meggyi001: Áram nélkül....méltóság nélkül.....
- Mr Dini: Mindent a StreamSharkról!
Ú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
- Bittorrent topik
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Távozik az Apple vezérigazgatója
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Áprilisi hardverpasziánsz
- exHWSW - Értünk mindenhez IS
- Bambu Lab 3D nyomtatók
- Milyen cserélhető objektíves gépet?
- Crimson Desert
- Autós topik
- További aktív témák...
- BESZÁMÍTÁS! Gigabyte B450M R5 2600 16GB DDR4 256GB SSD GTX 1060 6GB Formula Air Mesh G3 Chieftec500W
- LG UltraWide 38WR85QC-W IPS Monitor! 3840x1600 / 144Hz / 1ms / G-Sync / FreeSync
- Lenovo Yoga 7 2in1 OLED FHD+ Ultra 5 125H 16 GB DDR5 7467 MHz Magyar helyszíni garancia 2028.06.
- 268 - Lenovo Yoga Pro 9 (16IAH10) - Intel Core U9 285HX, RTX 5060 (multitouch)
- 27% - ASUS TUF VG249Q3R Gaming IPS Monitor! 180Hz / 1ms / 1920x1080 / FreeSync
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
![;]](http://cdn.rios.hu/dl/s/v1.gif)
