Hirdetés
- Notebookosított mini PC-t leplezett le az AOOSTAR
- Vélemény: más cég lenne az Intel, ha korábban nevezik ki Lip-Bu Tant
- Barátságot teremtene az ARM és az Anti-Cheat rendszere között az Epic Games
- Hamarosan foghatja a kezét a Copilot a játékosoknak
- Az NVIDIA szerint a nagyobb készletek stabilizálják majd az új GeForce-ok árait
Új hozzászólás Aktív témák
-
baracsi
tag
Semmi extra, készít egy tömeges SQL-t,amit neked kell lefuttatni, sok ALTER TABLE [séma.táblanév] FORCE; sort fogsz kapni. Azon táblákra, amelyekben van time, timestamp, vagy datetime típusú mező. InnoDB-s perzisztens táblákra vonatkozik, nyugodtan le lehet futtatni a query-t, max nem kapsz semmit vissza.
-
ha nem működik egy join írd át nested selectre, és nézd meg úgy.
@Ispy: tipikusan nehezebben átlátható, főleg az egzotikus fajta. én leszoktam róla, az interpreter/optimizer úgyis szétszedi, amire neki tetszik. a fenti statementben is van 3 join, úgy hiányzik a negyedik, mint púp a hátamra.
-
Ispy
veterán
Nem értek a TimesTenhez, szóval csak belemakogok, de ez a rész
and
srk.DOMAIN_RESOLVE_KEY_UID = (
select drk."UID" from DOMAIN_RESOLVE_KEY drk
where drk.ID like 'guestPIN');miért nem join-ként van definiálva?
Illetve itt a like-hoz nem kell %-jel vagy valami? Alapból benne keres? Vagy itt csak azokra vagy kiváncsi, ahol guestPIN, akkor meg minek a like, miért nem simán =?
-
Zalanius
tag
Thx így már jobban értem, mi volt a cél. Reflexből a NOT IN meg NOT EXISTS variációkra gondolnék ilyen esetekben, nem erre a változatra, ezért volt furcsa, de valszeg ez csak ilyen egyéni dolog.
Sajnos érdemi ötletem az továbbra sincs, ha itt az a probléma, hogy tökugyanaz a query hol ilyen, hol olyan eredményt ad, és közben egész biztos lehetsz benne, hogy a többi kapcsolt tábla nem variál a dolgon. Egyáltalán nem tűnik normálisnak, se az in-memory, se más db esetén.
-
Zalanius
tag
Sry előre ha fura a kérdés, de left OUTER join és az exclude hogyan említhető egyszerre? Amikor utoljára ORA-ztam, az outer join pont az ellentéte volt, teljes megőrzés a bal táblára.
Azt sem értem, hogy miért kell a vonatkozó mezőn ott a null filter, de emögött biztos van szándék.
-
kem
addikt
Sikerult felig.
INSERT INTO subscription_attribute
select
s."UID", 167463909189556, 1, '<null/>'
from subscription s
join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
join account a on s.OWNING_ACCOUNT_UID = a."UID"
left outer join boostGainEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
where
ml.SUBSCRIPTION_UID is null
and srk.DOMAIN_RESOLVE_KEY_UID = (
select drk."UID" from DOMAIN_RESOLVE_KEY drk
where drk.ID like 'guestPIN')
and a.id like '%xy007%'
and s.id like '%xy%'
order by s."UID";Most mar csak azt szeretnem, ha a 167463909189556 helyett tudnam hasznalni a parameter nevet. Erre egy masikat irtam, a kettot kene valahogy osszegyurni.
INSERT INTO subscription_attribute
select
168504837876601, dp."UID", 1, '<null/>'
from DOMAIN_PARAMETER dp where ID like 'boostGainEnabled';Szerk, meg is van:
INSERT INTO subscription_attribute
select
s."UID", dpa."UID", 1, '<null/>'
from DOMAIN_PARAMETER dpa, subscription s
join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
join account a on s.OWNING_ACCOUNT_UID = a."UID"
left outer join boostGainEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
where
ml.SUBSCRIPTION_UID is null
and srk.DOMAIN_RESOLVE_KEY_UID = (
select drk."UID" from DOMAIN_RESOLVE_KEY drk
where drk.ID like 'guestPIN')
and a.id like '%xy007%'
and s.id like '%xy%'
and dpa.ID like 'boostGainEnabled'
order by s."UID";Bocs, hogy ideszemeteltem, de reggel meg biztos voltam benne, hogy nem fog sikerulni
-
tm5
tag
Érdekes, úgy rémlett, hogy később kijavítottam column_value-t SA.value-ra.
SUBSTR(sa.VALUE,4,LENGTH(sa.VALUE)-7)
: ide a 4 helyére azt kell írni, ahol kezdődik a tényleges érték. '<s>' ugye 3 karakter hosszú, tehát a negyedik karakternél fog kezdődni a tényleges mezőérték. A LENGTH(sa.VALUE)-7 megadja, hogy hány karakter hosszú a tényleges mezőérték. Ezt úgy kapjuk meg, hogy a mező teljes hosszából (LENGTH(sa.VALUE)) levonjuk a fölösleges rész hosszát. Ez a mi példánkban 7 volt, mert '<s>' és '</s>' összesen 7 karakter.Tehát ha a boolean-ből szeretnéd kibányászni a tényleges mezőértéket, akkor az így néz ki:
'<boolean>' hossza 9 (tehát a 10. karakteren fog kezdődni ami neked kell)
'</boolean>' hossza 10SUBSTR(sa.VALUE,10,LENGTH(sa.VALUE)-19)
-
tm5
tag
Hát a WHERE feltételben az van, hogy minden olyan rekordra fusson le aminél a mező értéke '<s>'-sel kezdődik és '</s>' -re végződik.
A SET-nél az van, hogy vágja ki a két fenti markup közti részt és rakja '<int>' és '</int>' közé.
Tehát így transzformál (elvileg):
'<s>1</s>' -> '<int>1</int>'
'<s>12</s>' -> '<int>12</int>'
'<s>999</s>' -> '<int>999</int>'
stb.Ha esetleg más szerkezetű (is) a mező tartalma, amit konvertálni kell, akkor írj már rá, légy szíves, néhány példát és akkor átfogalmazzuk a parancsot.
-
kem
addikt
Pl az egyik platformnak, ez az egyik attributuma, amit roszul provisioningeltek sokaig:
< <int>3</int>, 150328 >
< <int>5</int>, 2093 >
< <s>3</s>, 288405 >
< <s>5</s>, 6370 >Az osszes stringet itt at kellene nevezni integerre. A bal oldali az ertek, a jobb oldali az a number of subscribtioins amihez az az ertek van rendelve. Valahogy egyszerre szeretnem az osszes 5-os, es 3-ast is feldolgozni. Van ahol ebbol tobb mint 10 ertek van, nem csak ez a ketto.
Szoval a kerdesem valoszinuleg alap SQL whitecard tema amivel nem vagyok tisztaba. Mukodne az ugy pl, hogy <s>*</s> van a filterben, es <int>*</int> az update oldalon? Gondolom nem ilyen egyszeru a tema.
Új hozzászólás Aktív témák
Hirdetés
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest