Prevádzkovatelia pobočiek v príkazovom príkazu. NVL Konverzia pre rôzne dátové typy laboratórne práce

Funkcia TOP_CHAR s číslami

Funkcie konverzie dát do iných typov údajov. TO_CHAR (číslo) Konvertuje číslo do textu. To_number konvertuje text na číslo.

Vyberte TO_CHAR (123) Z DUAL VÍTAJTE LINKA 123, vyberte položku To_Number (`12345") z Dual vráti číslo 12345.

Laboratórne práce. Zmena formátu výstupných čísel

Zmeny vo formáte číselných hodnôt v systéme Oracle SQL, funkcia TO_CHAR pracujú s numerickými hodnotami.

Úloha:

Napíšte žiadosť, ktorá by zobrazovala informácie o mene, priezvisku a platení zamestnancov z tabuľky HR.eMyentov vo formáte zobrazenej na obr. 3.4-1:

Obr. 3.4. -1

Zároveň musia byť údaje zoradené takým spôsobom, aby sa najprv zobrazili riadky pre zamestnancov s najväčším platom.

Poznámka:

Niektoré mzdy na obr. 3,4-1 sa zmenili, takže sa nemusia zhodovať s vašimi hodnotami.

Rozhodnutie:

Vyberte FIRST_NAME ako "Meno", Last_name ako "Priezvisko", TO_CHAR (plagát, "L9999999999.99") ako "šalát" z HR.eMyeees Order podľa platu.

Funkcie to_number a to_date

Funkcia konverzie riadkov v dátume T_Date (reťazec, formát). Možné formáty sú už vyššie uvedené, takže budem uviesť niekoľko príkladov použitia tejto funkcie. PRÍKLADY:

Vybrať TO_DATE (01.01.2010, `dd.mm.yyyy) Z. Dual vráti dátum `01.01.2010;

Vybrať TO_DATE (01.JAN.2010, `dd.MON.yyyy) Z. Dual vráti dátum `01.01.2009";

Vybrať To_date ("15-01-10", `dd-mm-yy") Z. Dual vráti dátum `01/15/2010."

Funkcia konverzie riadkov na číselnú hodnotu TO_NUMBER (reťazec, formát). Najbežnejšie formáty sú uvedené v tabuľke, takže zvážte použitie tejto funkcie na príkladoch. PRÍKLADY:

Vybrať To_number (`100") Z. Dual vráti číslo 100 Vyberte to_Number (`0010.01," 9999D99) Z. Dual vráti číslo 10.01;

Vybrať To_number ("500 000", "999g999") Z. Dual vráti číslo 500000.

RR prvok vo formáte dátumov

Prvok formátu RR dátumu a času je podobný prvku YY Dátum a časový prvok, ale poskytuje dodatočnú flexibilitu na uloženie hodnôt dátumu a v iných storočiach. Prvok dátumov RR a časového formátu vám umožňuje uložiť dátumy 20. storočia v 21. storočí, čo označuje iba dve posledné číslice roka.

Ak dvaja posledných pár údajov aktuálneho roka je 00 až 49, ROZPRACOVNÝ ROK má rovnaké prvé dve číslice ako v bežnom roku.

Ak sú dva posledné údaje bežného roka od 50 do 99, prvé 2 číslice vráteného roka 1 viac ako v prvých dvoch číslic bežného roka.

Ak sú dva posledné údaje bežného roka 00 až 49, prvé 2 číslice vráteného roka sú 1 menej ako prvé 2 číslice aktuálneho roka.

Ak sú dva posledné údaje bežného roka od 50 do 99, potom vrátený rok má rovnaké prvé dve číslice ako v bežnom roku.

NVL funkcia

Funkcia NVL sa zvyčajne aplikuje najčastejšie. Funkcia prijíma dva parametre: NVL (expr1, EXERG2). Ak prvý parameter expr1 nie je rovný , potom funkcia vráti hodnotu. Ak je prvým parametrom , funkcia vráti hodnotu druhého parametra exerg2.

Príklad: Vyberte NVL (Dodávateľ_City, N / A ") od dodávateľov:

Vyhlásenie SQL sa vráti N / ", ak pole DPHPLER_CITY obsahuje nulovú hodnotu. V opačnom prípade vráti hodnotu dodávateľa_city.

Ďalším príkladom používania funkcie NVL v Oracle / PLSQL je:

vyberte Dodacie zariadenie, NVL (DOPLNKU) Od dodávateľov.

Táto aplikácia SQL sa vráti meno dodavateľa. Pole, ak dodávateľ_desc. obsahuje nulovú hodnotu. Inak sa vráti dodávateľ_desc..

Posledný príklad: Používanie funkcie NVL v Oracle / PLSQL je: Vyberte NVL (provízia, 0) z predaja;

Toto vyhlásenie SQL sa vrátilo na 0, ak komisia Pole obsahuje nulovú hodnotu. Inak by bolo možné vrátiť sa komisia lúka.

NVL Konverzia pre rôzne typy údajov

Ak chcete previesť neurčitú hodnotu na skutočnú funkciu, použije sa funkcia NVL: Nvl ( expresia1, expresia 2), kde:

expresia1- Zdroj alebo vypočítaná hodnota, ktorá môže byť neistá.

expression2. - hodnota, ktorá je nahradená namiesto neurčitej hodnoty.

Poznámka: Funkcia NVL možno použiť na prevod akéhokoľvek typu údajov, ale výsledok bude vždy rovnaký typ ako expresia1.

NVL Konverzia pre rôzne typy:

Číslo - NVL. (numerický stĺpec, 9).

Char alebo Varchar2 - NVL (Symboly | stĺpec, "Nie je k dispozícií").

Laboratórne práce. Aplikácia funkcie NVL

NVL funkcia pracovať s neistými hodnotami v Oracle SQL.

Úloha:

Napíšte požiadavku, ktorá zobrazuje informácie o mene a priezvisku zamestnancov z tabuľky HR.eMyesees., Rovnako ako ponuka Komisie (Commission Commission_PCT) pre zamestnanca. Zároveň pre tých zamestnancov, pre ktorých nie je Komisia definovaná, je potrebné zobraziť hodnotu 0. Výsledok dotazu musí byť podľa obr. 3.5-1.

Obr. 3.5 -1 (hodnoty začínajú z riadku 51)

Rozhodnutie:

Kódex zodpovedajúcej žiadosti môže byť:

Vyberte First_name ako "Meno", Last_name ako "priezvisko", NVL (COMISE_PCT, 0) ako "Commission Sadzba" z HR.eMyentov.

NVL funkcia

Funkcia NVL sa zvyčajne aplikuje najčastejšie. Funkcia prijíma dva parametre: NVL (expr1, expr2). Ak prvý parameter expr1 nie je rovný , potom funkcia vráti hodnotu. Ak prvý parameter , potom funkcia vráti hodnotu druhého parametra ExPR2.

Zvážiť praktický príklad. Pole Comm v tabuľke EMP môže obsahovať hodnoty null. Pri vykonávaní dotazu formulára:

Vyberte EMPNO, ENAME, COMM, NVL (COMMA, 0) NVL_COMM

Z SCOTT.EMP

nullová hodnota bude nahradená nule. Upozorňujeme, že v prípade tvorby hodnoty pomocou funkcie je priradená pseudonymom. Výsledky požiadavky budú:

EMPNO. Brán. Comm. Nvl_comm.
7369 Smiech 0
7499 Zväčšiť 300 300
7521 Odrezať 500 500
7566 Džončitý 0
7654 Martin. 1400 1400
7698 Bluť 0
7782 Clark. 0
7839 Kráľ. 0
7844 Točenie 0 0
7900 James. 0
7902 Ford. 0
7934 Mlynár 0

SEIL (n)

Funkcia SEIL vráti najmenšie celé číslo, väčšie alebo rovné počtu N. Napríklad:

Vyberte CEIL (100) X1, CEIL (-100) X2, CEIL (100,2) X3, CEIL (-100.2) X4

Z duálneho

TRUNC FUNKCIA (N [, M])

Funkcia TRUNCU sa vráti číslo n skrátené do znakových stránok po desatinnom bode. Parameter M nesmie byť uvedený - v tomto prípade, n skrátenej celej.

Vyberte Trunc (100.25678) X1, TRUNC (-100.25678) X2, TRUNC (100,99) X3,

TRUNC (100.25678, 2) X4

Z duálneho

Znamenie (n) Funkcia

Funkcia Sign Určuje počet čísel. Ak je n kladná, potom sa funkcia vráti 1. Ak sa vráti negatívne -1. Ak je nula nula, potom sa vráti 0. Napríklad:

Vyberte znak (100,22) x1, znak (-100.22) x2, podpísať (0) x3

Z duálneho

Zaujímavosťou tejto funkcie je možnosť vysielania m rovnosti nuly - nevyskytuje chyby rozdelenia podľa 0.

Funkcia Power (N, M)

Funkcia napájania vytvára číslo n do stupňa m. Titul môže byť zlomkový a negatívny, čo výrazne rozširuje možnosti tejto funkcie.

Vyberte položku Napájanie (10, 2) x1, výkon (100, 1/2) x2,

Výkon (1000, 1/3) x3, výkon (1000, -1/3) x4

Z duálneho

X1 X2 X3. X4.
100 10 10 0,1

V niektorých prípadoch sa pri volaní tejto funkcie môže nastať výnimka. Napríklad:

Vyberte položku Power (-100, 1/2) X2

Z duálneho

V tento prípad Uskutočňuje sa pokus o výpočet odmocniny z negatívneho čísla, ktoré bude mať za následok argument ORA-01428 "argument mimo rozsahu".

SQRT (n) funkcia

Táto funkcia sa vracia odmocnina z čísla n. Napríklad:

Vyberte SQRT (100) X

Z duálneho

Funkcie Exp (n) a ln (n)

Funkcia EXP eruduje E do stupňa N a funkcia LN počíta prirodzený logaritmus z N (s N, n musí byť väčší ako nula). Príklad:

Vyberte EXP (2) X1, LN (1) X2, LN (Exp (2)) X3

NVL funkcia

Funkcia NVL sa zvyčajne aplikuje najčastejšie. Funkcia prijíma dva parametre: NVL (expr1, expr2). Ak prvý parameter expr1 nie je rovný , potom funkcia vráti hodnotu. Ak prvý parameter , potom funkcia vráti hodnotu druhého parametra ExPR2.

Praktický príklad. Pole Comm v tabuľke EMP môže obsahovať hodnoty null. Pri vykonávaní dotazu formulára:

Vyberte EMPNO, ENAME, COMM, NVL (COMMA, 0) NVL_COMM

Z SCOTT.EMP

nullová hodnota bude nahradená nule. Upozorňujeme, že v prípade tvorby hodnoty pomocou funkcie je priradená pseudonymom. Výsledky požiadavky budú:

EMPNO. Brán. Comm. Nvl_comm.
7369 Smiech 0
7499 Zväčšiť 300 300
7521 Odrezať 500 500
7566 Džončitý 0
7654 Martin. 1400 1400
7698 Bluť 0
7782 Clark. 0
7839 Kráľ. 0
7844 Točenie 0 0
7900 James. 0
7902 Ford. 0
7934 Mlynár 0

SEIL (n)

Funkcia SEIL vráti najmenšie celé číslo, väčšie alebo rovné počtu N. Napríklad:

Vyberte CEIL (100) X1, CEIL (-100) X2, CEIL (100,2) X3, CEIL (-100.2) X4

Z duálneho

TRUNC FUNKCIA (N [, M])

Funkcia TRUNCU sa vráti číslo n skrátené do znakových stránok po desatinnom bode. Parameter M nesmie byť uvedený - v tomto prípade, n skrátenej celej.

Vyberte Trunc (100.25678) X1, TRUNC (-100.25678) X2, TRUNC (100,99) X3,

TRUNC (100.25678, 2) X4

Z duálneho

Znamenie (n) Funkcia

Funkcia Sign Určuje počet čísel. Ak je n kladná, potom sa funkcia vráti 1. Ak sa vráti negatívne -1. Ak je nula nula, potom sa vráti 0. Napríklad:

Vyberte znak (100,22) x1, znak (-100.22) x2, podpísať (0) x3

Z duálneho

Zaujímavosťou tejto funkcie je možnosť vysielania m rovnosti nuly - nevyskytuje chyby rozdelenia podľa 0.

Funkcia Power (N, M)

Funkcia napájania vytvára číslo n do stupňa m. Titul môže byť zlomkový a negatívny, čo výrazne rozširuje možnosti tejto funkcie.

Vyberte položku Napájanie (10, 2) x1, výkon (100, 1/2) x2,

Výkon (1000, 1/3) x3, výkon (1000, -1/3) x4

Z duálneho

X1 X2 X3. X4.
100 10 10 0,1

V niektorých prípadoch sa pri volaní tejto funkcie môže nastať výnimka. Napríklad:

Vyberte položku Power (-100, 1/2) X2

Z duálneho

V tomto prípade sa vyrába pokus o výpočet odmocniny z negatívneho čísla, ktoré povedie k argumentu ORA-01428 "mimo rozsahu" Chyba ".

SQRT (n) funkcia

Táto funkcia vracia druhú odmocninu z čísla n. Napríklad:

Vyberte SQRT (100) X

Z duálneho

Funkcie Exp (n) a ln (n)

Funkcia EXP eruduje E do stupňa N a funkcia LN počíta prirodzený logaritmus z N (s N, n musí byť väčší ako nula). Príklad:

Vyberte EXP (2) X1, LN (1) X2, LN (Exp (2)) X3

Investované funkcie, ktoré sme sa dotkli o niečo skôr, teraz ich zvážte trochu podrobnejšie. Budeme tiež zvážiť funkciu práce s hodnotou null a funkcií, ktoré pomáhajú implementovať prevádzku pobočky v žiadosti.

Vnorené funkcie

Vnorené funkcie Používam vrátenú hodnotu jednej funkcie ako vstupný parameter pre inú funkciu. Funkcie Vždy vrátia iba jednu hodnotu. Preto môžete zvážiť výsledok funkcie funkcie ako doslovnú hodnotu, keď ho používate ako parameter hovoru na inú funkciu. Riadkové funkcie môžu byť pripojené k akejkoľvek úrovni hniezdenia. Vyzerá to jedna funkcia

Funkcia1 \u200b\u200b(parameter1, parameter2, ...) \u003d výsledok

Výmena funkčného parametra Ak chcete volať inú funkciu, môže viesť k vzniku druhov

F1 (Param1.1, F2 (Param2.1, Param2.2, F3 (Param3.1)), Param1.3)

Najprv sa vnorené funkcie vypočítajú pred použitím ich výsledkov ako vstupné hodnoty pre iné funkcie. Funkcie sa vypočítajú z najhlbšej úrovne hniezdenia do najvyššieho vpravo vpravo. Predchádzajúci výraz sa vykonáva nasledovne

  1. Obrázok F3 (Param1) sa vypočíta a návratová hodnota sa používa ako tretí parameter pre funkciu 2, zavolajte to parametra2.3
  2. Funkcia F2 sa potom vypočíta (Param1, Param2.2, Param2.3) a návratová hodnota sa používa ako funkcia druhej parametra F1 - Param1.2.
  3. Funkcia F1 (Param1, Param2, Param1.3) sa vypočíta a výsledok sa vráti do programu volania.

Funkcia F3 je teda v tretej úrovni hniezdenia.

Zvážte žiadosť

select_day (Last_day (SYSDATE) -7, 'UT') Z DUAL;

  1. V tomto dotaze tri funkcie, z nižšej úrovne na vrchol - SYSDATE, Last_day, Next_day. Žiadosť sa vykonáva nasledovne.
  2. Vykonáva sa najviac vnotená funkcia SYSDATE. Vracia aktuálny systémový čas. Predpokladajme, že aktuálny dátum 28. októbra 2009
  3. Výsledkom je výsledok funkcie druhej úrovne Last_day. Last_Date ('28 -OXT-2009 ') vráti posledný deň októbra 2009, to znamená hodnotu 31. októbra 2009.
  4. Potom sa odčítanie dochádza od tohto dátumu sedem dní - Ukazuje sa 24. októbra.
  5. A nakoniec, vypočíta sa funkcia NEXT_DAY ('24 -OXT-2009 ',' UT ') a požiadavka vráti posledný utorok z októbra - to v našom príklade 27. októbra 2009.

Je dosť ťažké pochopiť a budovať zložité výrazy pomocou mnohých priložených problémov funkcií, ale prichádza s časom a praxou. Takéto výrazy môžete rozdeliť na časti a skúšku samostatne. Tabuľka Dual je veľmi užitočná na testovanie Z.APROSOV a výsledky funkcie funkcie. Môžete testovať a debugovať malé komponenty, ktoré potom kombinujú do jedného veľkého požadovaného výrazu.

Pobočkové funkcie

Funkcie pobočiek, tiež známe, ako keby niečo - inak sa používa na určenie cesty vykonávacej cesty v závislosti od všetkých okolností. Funkcie rozvetvenia návratu rôznych výsledkov na základe žiadneho výsledku výpočtu stavu. Skupina takýchto funkcií prideľuje funkcie práce s hodnotou NULL: NVL, NVL2, NULLIF a COALESCE. A tiež spoločné funkcie reprezentované dekódovanou funkciou a prejavom prípadu. Funkcia dekódov je funkcia Oracle, zatiaľ čo expresia prípadu je prítomná v štandarde ANSI SQL.

NVL funkcia

Funkcia NVL kontroluje hodnotu stĺpca alebo vyjadrenie akéhokoľvek typu údajov na null. Ak NULL - vráti alternatívnu ne-nulovú predvolenú hodnotu, inak sa vráti pôvodná hodnota.

Funkcia NVL má dva požadované parametre a NVL Syntax (Original, Ifnull), kde originál je pôvodná hodnota pre kontrolu a výsledok ifnull vráteného funkciou, ak je pôvodná hodnota null. Typ údajov IFNULL a originálnych parametrov musí byť kompatibilný. To znamená, že typ údajov musí byť rovnaký alebo by mal byť možnosť implicitnej konverzie hodnôt z jedného typu na druhú. Funkcia NVL vráti hodnotu rovnakého typu údajov ako typ údajov pôvodného parametra. Zvážte tri žiadosti

Dotaz 1: Vyberte NVL (1234) z duálneho;

Dotaz 2: Vyberte NVL (NULL, 1234) z duálneho;

Dotaz 3: Vyberte NVL (Substr ('ABC', 4), "neexistuje" žiadne podreťazce ") od duálneho;

Pretože funkcie NVL vyžadujú dva parametre, dotaz 1 vráti chybu ORA-00909: Neplatný počet argumentov. Žiadosť 2 sa vráti 1234, keď je hodnota null kontrolovať a je to null. Otázka tri sa používajú vnorená funkcia substrátu, ktorá sa snaží vybrať štvrtý znak z reťazca v troch znakoch, vráti hodnotu null a funkcia NVL vráti "No SBURSTRING neexistuje reťazec.

Funkcia NVL je veľmi užitočná pri práci s číslami. Používa sa na konverziu null hodnôt na 0 až aritmetické operácie Nulls sa nevrátili nad číslami

NVL funkcia2

Funkcia NVL2 poskytuje funkčnú funkčnú ako NVL, ale slúži aj na spracovanie hodnoty null. Kontroluje hodnotu stĺpca alebo výrazy akéhokoľvek typu na null. Ak hodnota nie je rovná , druhý parameter je zapojený, inak sa tretí parameter vráti, na rozdiel od funkcie NVL, ktorá v tomto prípade vráti pôvodnú hodnotu.

Funkcia NVL2 má tri požadované parametre a NVL2 Syntax (Original, Ifnot, IfNULL), kde originál je platná hodnota, hodnota Ifnotnult sa vráti v prípade originálu nie je null a ifnull vrátil v prípade, ak je originál null. Typy údajov ifnotnultov a ifnullových parametrov musia byť kompatibilné a nemôžu byť dlhé. Dátový typ funkcie vráteného NVL2 sa rovná typu údajov parametra IFNOTNULL. Zvážte niekoľko príkladov

Dotaz 1: Vyberte NVL2 (1234, 1, 'reťazec ") z duálneho;

Dotaz 2: Vyberte NVL2 (NULL, 1234, 5678) z duálneho;

Dotaz 3: Vyberte NVL2 (Substr ('ABC', 2) ,, NOT BC ',, NO SUBSTRING') Z DUAL;

Parameter Ifnotnull v dotaze 1 je číslo a parameter Ifnull je reťazec. Keďže typy údajov sú nekompatibilné, chyba "ORA-01722: Neplatné číslo" sa vráti. Queue Two Returs Ifnull Parameter, pretože originál je null a výsledok bude 5678. Dotazníky tri používajú funkciu substrátu, ktorá sa vracia "BC" a zavolá NVL2 ("BC" ,, NOT BC ',, NO SUBSTRING') - ktorý sa vracia) Ifnotnull parameter - "nie bc".

Nullif funkcia

Funkcia nullif kontroluje dve hodnoty pre identitu. Ak sú rovnaké - null sa vráti inak, prvý parameter sa vráti. Funkcia NULLIF má dve povinné parametre a syntax nullif (ifuniqual, porovnanie_Item). Funkcia porovnáva dva parametre a ak sú identické - null sa vrátia, inak parameter IFUNAQUAL. Zvážte požiadavky

Dotaz 1: Z duta vyberte Nullif (1234, 1234);

Požiadavka jedna vráti , pretože parametre sú identické. Riadky v dotaze 2 nie sú konvertované na dátum, ale sú porovnané ako riadky. Keďže rady rôznych dĺžok - vráti parameter IFUNEQUAL 24-JUL-2009.

Obrázok 10-4, funkcia nullif je investovaná do funkcie NVL2. V funkcii NULLIF, zase Substr a horné funkcie sa používajú ako súčasť expresie v parametri IFUNAQUAL. S týmto výrazom sa porovnáva stĺpec e-mailu, ktorý vráti prvé písmeno mena, zjednotené s priezviskom pre zamestnancov, ktorí majú meno v 4 znakoch. Keď sú tieto hodnoty rovnaké, Nullif sa vráti , hodnota parametra IFUNAQUAL vráti hodnotu. Tieto hodnoty sa používajú ako parameter pre funkciu NVL2. NVL2 zase vráti popis, či sú komisovateľné prvky zhodné alebo nie.

Obrázok 10-4 - Použitie funkcie nullif

Funkcia koale

Funkcia CoALESCE vráti prvú hodnotu, ktorá nie je rovná null z zoznamu parametrov. Ak sú všetky parametre , vráti sa null. Funkcia CoALESCE má dva požadované parametre a koľko voliteľných parametrov a syntaxe COALESCE (EXPR1, EXPR2, ..., Exprn), kde je výsledok expr1, ak je hodnota expr 1H , inak bude výsledok expr2, ak nie je null , atď. COALESCE je rovnako v zmysle nvl funkcií

COALESCE (expr1, expr2) \u003d NVL (expr1, expr2)

COALESCE (expr1, expr2, expr3) \u003d NVL (expr1, NVL (expr2, expr3))

Typ dát Return Hodnota Ak nie je null null hodnota rovnaká ako typ dát prvej nullovej hodnoty. Aby sa predišlo chybám "ORA-00932: nekonzistentné typy údajov", všetky ne-null parametre musia byť kompatibilné s prvým nielovým parametrom. Zvážte tri príklady

Dotaz 1: Vyberte Coalesce (, , , 'reťazec') od dual;

Dotaz 2: Vyberte Coalesce (, , null) z duálneho;

Dotaz 3: Vyberte Coatesce (Substr ('ABC ", 4) ,,,, NIE BC' ,, NO SUBSTRING ') Z DUAL;

Žiadosť 1 Vracia štvrtý parameter: reťazec, pretože to je prvým parametrom null. Dotaz dva vráti , pretože všetky parametre sú null. Žiadosť 3 Vypočíta prvý parameter, dostane hodnotu null a vráti druhý parameter, pretože je to prvý nie nullový parameter.

Funkčné parametre NVL2 sa môžu zmiasť, ak ste už oboznámení s funkciou NVL. NVL (originál, ifnull) vráti originál, ak hodnota nie je , inak ifnull. NVL2 (Original, IfnootNull, Ifnull) sa vracia Ifnot, ak pôvodná hodnota nie je rovná null iným ako Ifnull. Zmätok dochádza v dôsledku toho, že druhý parameter funkcie NVL If, zatiaľ čo NVL2 je Ifnotnult. Takže dúfam, že parameter umiestnite do funkcie.

Dekódovať funkciu

Dekódová funkcia implementuje IF-potom-else Logic. Kontrola prvých dvoch parametrov na rovnosť a vráti tretiu hodnotu v prípade ich rovnosti alebo inej hodnoty v prípade nerovnosti. Funkcia dekódov má tri požadované parametre a dekódovanie syntaxe (EXPR1, COMP1, IFTUE1 ,,). Tieto parametre sa používajú, ako je znázornené v nasledujúcom príkladoch pseudo-kód.

Ak expr1 \u003d comp1 potom sa vráti iftrue1

Inak, ak expr1 \u003d comp2 potom vráti iftrue2

Inak, ak Exprn \u003d Compn potom RETURN IFTRUEN

Inak sa vráti null | Iffalse;

Najprv sa EXPR1 porovnáva s Comp1. Ak sa rovnajú hodnote IFTRAUE1. Ak Expr1 nie je rovný Comp1, potom to, čo sa stane ďalej, závisí od toho, či sú uvedené parametre COMP2 a IFTUE2. Ak sú nastavené nastavené, hodnota expr1 sa porovnáva s COMP2. Ak sú hodnoty rovnaké, vráti sa IFTRUE2. Ak nie, ak existujú páry parametrov Compn, IFTRUEN porovnáva Expr1 a Compn a ak sa v prípade rovnosti vráti iFTRUEN. Ak nebola náhoda v ľubovoľnom súbore parametrov, potom sa vráti, ak je tento parameter nastavený alebo null.

Všetky parametre v dekódovej funkcii môžu byť výrazy. Typ vrátenej hodnoty sa rovná typu prvého kontrolného prvku - parametercomp 1. exprický výraz 1 implicitne prevedené na typ dát parametra COMP1. Všetky ostatné dostupné možnosti COMPL1 ... Compn. Tiež implicitne prevedené na typ COMP1. Decode považuje hodnotu null ako rovnú inú hodnotu , t.j. Ak je expr1 null a comp3 je null a Comp2 nie je , potom sa vráti hodnota IFTUE3. Zvážte niekoľko príkladov

Dotaz 1: Zvoľte Decode (1234, 123, '123 je zápas ") z duálneho;

Dotaz 2: Zvoľte dekódovanie (1234, 123, '123 je zápas "," žiadny zápas ") z duálneho;

Dotaz 3: Zvoľte Decy ("SEARCH", 'COMP1', 'TRUE1', 'COMP2', 'TRUE2', 'SEARCH', 'TRUIS3', SUBSTAR ('2SEARCH', 2, 6), 'TRUCH4', ' false ') od duálneho;

Požiadavka porovnáva hodnotu 1234 a 123. Keďže nie sú rovnaké, potom IFTUE1 sa ignoruje a pretože nie je definovaný, ak sa vráti null. Dotaz je identický s dotazom 1, výnimkou, že hodnota IFFALSE je definovaná. Od roku 1234 nie je rovný 123, Iffalse sa vráti - "žiadny zápas". Dotaz tri kontroluje hodnoty parametrov pri prispôsobovaní hodnoty vyhľadávania. Parametre COMP1 a COMP2 nie sú rovnaké ako "vyhľadávať", výsledky IFTUE1 a IFTUE2 sú preskočené. Zhoda sa nachádza v treťom porovnaní Porovnanie prvku COMP3 (pozícia parametra 6) a hodnota IFTUE3 (parameter 7) sa vráti, ktorý je "TRUE3". Keďže náhoda nájde viac výpočtov. To znamená, že napriek tomu, že hodnota Comp4 (parameter 8) sa tiež zhoduje s Expr1 - tento výraz sa nikdy nepočíta, pretože náhoda bola nájdená v predchádzajúcom porovnaní.

Znak

Všetky tretie a štvrtej generácie programovacie jazyky implementujú návrh prípadu. Podobne ako dekódovaná funkcia, expresia prípadu vám umožňuje implementovať if-potom-inde logickú logiku. K dispozícii sú dve možnosti používania expresie prípadu. Jednoduchá expresia prípadu nastaví zdrojový prvok na porovnanie raz, a potom uvádza všetky potrebné overovacie podmienky. Komplexné (vyhľadávané) prípad vypočíta oba operátorov pre každú podmienku.

Prípadová expresia má tri povinné parametre. Syntax expresie závisí od typu. Pre jednoduchý prípad výrazu vyzerá

Case search_expr.

Keď porovnanie_expr1 potom iftoue1

}