Új hozzászólás Aktív témák
-
-
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.
Köszi!
-
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.
-
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)
[ Szerkesztve ]
-
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
[ Szerkesztve ]
Köszi!
-
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.
--= Zalá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.
--= Zalán =--
-
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 =?
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
nagyúr
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.
Tudod, mit jelent az, hogy nemezis? Az érintett, erősebb fél kinyilatkoztatása a méltó büntetés mértékét illetően. Az érintett fél jelen esetben egy szadista állat... én.
-
sztanozs
veterán
where
<-- ez alapján kellene excludolnia?
ml.SUBSCRIPTION_UID is nulland
<-- itt egyenlőségjel helyett nem
srk.DOMAIN_RESOLVE_KEY_UID = (IN
kellene?select drk."UID" from DOMAIN_RESOLVE_KEY drk
where drk.ID like 'guestPIN');JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
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.
[ Szerkesztve ]
-
miért nem veszed ki teljesen a row format utasítást?
első ránézésre az a baja, hogy nem ismer olyan sor formátumot, hogy comment.
szerintem ezt:sed 's/ROW_FORMAT=COMPRESSED/ROW_FORMAT=/g'
írd át erre:sed 's/ROW_FORMAT=COMPRESSED//g'
[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Új hozzászólás Aktív témák
- Magga: PLEX: multimédia az egész lakásban
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Okos Otthon / Smart Home
- Milyen autót vegyek?
- MasterDeeJay: Volta a bányából azaz CMP 100-210 kisteszt (Tesla V100 mining)
- Telekom mobilszolgáltatások
- Kertészet, mezőgazdaság topik
- exHWSW - Értünk mindenhez IS
- Facebook és Messenger
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5