Tudd Intuíció, előadás kifejezést Oracle SQL

Építmények (üzemeltetők) CASE építőipari kifejezéseket

Alternatívaként a DECODE funkció (nem elérhető az Oracle megoldás szabványos, díszített funkció) és egyéb funkciók, feltételes keresési NVL értékek NVL2, NANVL és összeolvadnak verzió óta 8.1.6 akkor használja a „keresés” CASE -vyrazheniem és 9-es verzió - „egyszerű” CASE -vyrazheniem (mindkettő megtalálható az SQL-92 szabvány). Formálisan CASE nyilatkozat konstrukció feltételezhetjük (bonyolultabb szintaktikai szerkezete, mint abban az esetben, mondjuk, aritmetikai operátorok) használják az építőiparban egyszerűbb kifejezéseket. A használatához elengedhetetlen, hogy CASE eredmény nem „végleges”; ez kifejezi, hogy nem tilos használható építeni egy másik bonyolultabb. Ebben az esetben a struktúra nem különbözik más szereplők számára.







Syntax "keresés" operátor CASE:

Az ellenőrzések zajlanak, fentről lefelé, amíg az elsőrendű feltételes vyrazhenieI nem lesz igaz. Ezután ellenőrizze a megállók, és az eredmény az lesz az értéke-CASE rezultataI kifejezést.

A szintaxis a „egyszerű” operátor CASE:

Ellenőrzések származnak lefelé, amíg az érték az elsőrendű vyrazheniyaI érték egyenlő az vyrazheniya0. Ezután ellenőrizze a megállók, és az eredmény az lesz az értéke-CASE rezultataI kifejezést.

A szintaxis a feltételes kifejezések egy olyan esetben követi a szintaxisa ezt a részét a WHERE a SELECT, UPDATE, és DELETE. ismertetjük, és lehetővé teszi a meglehetősen bonyolult tervezési amint azt az alábbi példa:

Figyeljük meg, hogy a kapott adatok szolgáló KING lesz megjelölve, mint „fizetett”. Ha az ügy nyilatkozat ellenőrzése a helyét és a fizetés osztály megfordul, KING lesz megjelölve „dolgozik New Yorkban.”

Exercise. Ellenőrizze az utolsó nyilatkozatot.

Így az építési CASE eljárási elemek az elbeszélés egészét építése a beérkezett kérelmek SQL-ben.

Hiánya ELSE szerkezet hiányához vezethet érték következtében (NULL), de nem egy hiba:

Úgy véljük, hogy a kötelező feltüntetése ELSE javítja a megértése a szöveget a programozó (és ezáltal csökkenti a humán hiba). Eszerint a szempontból a következő kifejezés nem épül is:

Ehelyett írd:

„Keresés” CASE fajok sokkal általánosabb, mint az „egyszerű”, mivel lehetővé teszi a feltételes kifejezések kapott összehasonlító operátorok eltérő = (egyenlőség).

Tekintettel arra, hogy az ügy tervezési keretes formájában a nyelv a szolgáltató, nem egy függvény, mint dekódolni, NVL, NVL2, NANVL és COALESCE. ez nem csak a gyakoribb helyettesítő, hanem gyorsabb és kiszámíthatóbb, bár némileg minden esetben. Ez ösztönöz, hogy használja azt programozza, amely nem szerepel a névleges értéket helyettesítési feladatokat. Ugyanakkor, a szöveg a kérelmet, akkor általában több helyet foglal.







skalár kérés

Tovább design alkotnak kifejezések léteznek verzió Oracle 9. Ha a lekérdezés egy-oszlop, és nem több, mint egy sort, akkor adjuk meg zárójelben részeként a kifejezést a megfelelő értéket.

Ebben az esetben több eredményt tekintik a hiba, de az eredmény üres - a hiányzó értékeket, NULL:

Hozzáadása nullát a fenti kifejezést történik meggyőzni az olvasót, hogy nincsenek értékek a fenti skalár kifejezés. Egyébként én jön használni NVL funkciót.

Exercise. Átírni az utolsó lekérdezés segítségével a NVL funkciója, hogy meghatározza az adatbázis reakció hiánya sor egy skalár lekérdezés.

Oracle skalár egyoszlopos lekérdezési szintaxis ellenőrzést, de az egysoros - nincs. Megbízhatóságának javítása a szöveg néhány ajánlatot, mint egy mesterséges intézkedés tartalmazza a feltételes kifejezés a WHERE lekérdezés további feltétel ROWNUM <= 1. например:

Skaláris skalár allekérdezés ugyanabban az értelemben, mint említettük skalárfüggvények, hogy van, annak eredménye lehet egy sor (például egy oszlop értékek). Ugyanakkor ez az egyetlen visszatérési érték lehet, egy tárgyat (abban az értelemben, Oracle objektum jellemzői), és tiszta adatbázis szerkezetét.

feltételes kifejezések

Egyedi észrevételek hiányában értékek kifejezések

Expression operandus amelynek értéke hiányzik (jelöljük NULL), vezet egy hiányzó azonos értékű (NULL), ha:

  • és ideiglenes számszerű kifejezése által épített aritmetikai műveletek;
  • összehasonlítjuk a mindenféle.

Értsék meg a kezelését NULL néha segít a következő szabály: SQL érzékeli a NULL kifejezéseket, mint egy ismeretlen érték.

Amikor foglalkozó hiányzó értékeket az adatbázis gyakran NVL funkciót. Hasonlítsa össze a választ:

Sajnálatos módon a formális tanulmányi NVL funkciót ebben az esetben nem létezik. Érdemes használni, akár nem, ez megoldotta azt jelenti, hogy az adatbázis-tervező meghatározza a feltételezés hagyja oszlopban lévő értékeket. Ebben az esetben, ha a szó - „jutalék ismeretlen” (ismeretlen „nincs értéke, mert nem ismert adatbázis, bekerült az adatbázisba”), akkor kell alkalmazni a kérelem (1). Ha a szó a „nincs jutalék” ( „a munkavállaló még nem kapott megbízást”), a kérés (2). Hogy mit jelent a hiányzó érték az SQL tábla nem jelezte az adatbázisba; Ő kívül létezik az adatbázisban. hanem kell figyelembe venni a programban, együttműködik az adatbázist. Ez az egyik régóta ismert SQL baj.

Részben megoldja ezt a problémát lehetne használata helyett az „arctalan” jele hiányzik a NULL értékek legalább két különböző jelentéssel (javasolt „nem alkalmazható” - hiányzik, de nem alkalmazható - és a „nem tudom” - hiányzik, de alkalmazható). Azonban ebben az esetben lenne más kapcsolódó problémák összetettsége a használata négy számjegyű logika, és emiatt az SQL ezen elhagyott. SQL fejlesztők azt tanácsolják, hogy a hiányzó értékeket oszlopok csak abban az értelemben, az ismeretlen = hiányzik, de alkalmazható. Az Oracle, ezen a fórumon van egy relatív érték, hiszen bizonyos kéréseket (például megfelelnek, stb) képesek a hiányzó értékeket pontosan abban az értelemben hiányzik, de nem alkalmazható.

Töltse ki az ugyanazon határozat lehet az elutasítás hiányzó értékek általában. Mivel az SQL ez nem történik meg, néhány tanácsos elkerülni étkezési önként a hiányzó értékeket, ha lehetséges, és a modell hiányzó értékeket (különböző okokból) használata nélkül NULL. A másik oldala az ilyen önmérsékletet kellene rendezettebbé az adatok sémát, hogy egy adatbázis lekérdezés.




Kapcsolódó cikkek