Hogyan lehet Oracle SQL-ben ezt a problémát megoldani?
Szeretnék az alábbi problémára megoldást találni a legegyszerűbb módon. Van egy ilyen adattáblám (Oracle SQL Developer-ben).
A sorszám attribútum mindegyike null érték (varchar2 típusként terveztem definiálni de nem tudom ez így jó-e vagy inkább number legyen).
Szóval szeretném utólag kitölteni az értékeket hierarchikusan úgy, hogy pl. európai országok 1.x ázsiai országok 2.x afrikai országok 3.x-el legyenek jelölve, ahol az x természetesen a kontinensen belüli ország sorszáma egymás után. Tehát egy utólagos hierarchikus felsorolást szeretnék beszúrni kontinensekként. 1.1, 1.2, 1.3 || 2.1, 2.2, 2.3 || stb.
Persze sok száz rekordról van szó. Hogyan lehetne ezt megoldani? Tárolt eljárást sose tanultam, de nem tudom hogy lehet megvalósítani. Vagy van könnyebb utasítás? Feltételezem kell egy while ciklus és egy count változó (amíg azonos a kontinens addig növeld a count-ot és ciklus után nullázd le. Vagy nem tudom. Viszont ciklikusan jöhet később megint 5 db európai ország és azok már mondjuk 6.x-el lesznek számozva ami nem jó, mert nekem minden esetben 1.x-el kellene pl. az európai országokat számozni.
Tud valaki ebben segíteni?
Mivel ez egy alkalmi probléma, teljesen felesleges _tárolt_ eljárást írni rá, mert nem akarod tárolni.
Exportáld ki Excelbe a táblát, írd melléjük a kívánt számokat rendezés után, majd az összefűzést (& jel) használva írjál mindegyik sor mellé egy UPDATE utasítást.
update table sorszam=... where id=...;
A ... helyére jönnek a cellanevek, és kiöltöd a sorozatot húzással. A ; a végén fontos. Jelöld ki az utolsó oszlopot, és futtasd le valami interaktív ablakban. Sok éven át használtam a módszert, ez a legegyszerűbb.
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!