Zadávání hodnot výběrem z číselníku / seznamu
IS STUDIUM » SQL Vault » Zadávání hodnot výběrem z číselníku / seznamu
Výběr hodnot
1) Z číselníku, ze kterého se vybere jedna hodnota
- na 2. místě V, na 3. místě název číselníku
SELECT oprijmeni, ojmeno, omesto FROM osoba WHERE oobec = :obec -- *obec*V*OBEC*Bydliště - obec*535419
Popis parametrů:
-- *název parametru*datový typ*název číselníku*popis parametru*defaultní hodnota

2) SQL dotazem, který vytvoří seznam žádaných hodnot. Ze seznamu se vybere jedna nebo více hodnot.
- na 2. místě W1, na 3. místě část SQL dotazu začínající od názvu číselníku.
- dotaz lze napsat dvěma způsoby:
- buď zapsat celý dotaz
- nebo, pokud se jedná o výběr kódu a názvu, stačí napsat konec dotazu od názvu tabulky (viz níže) a první část dotazu "SELECT kod, nazev FROM" se doplní automaticky.
1 hodnota:
SELECT oprijmeni, ojmeno, omesto FROM osoba WHERE oobec = :obec -- *obec*W1*OBEC where KROK=3302*Bydliště - obec*535419
Popis parametrů:
-- *název parametru*datový typ*SQL dotaz*popis parametru*defaultní hodnota

více hodnot:
SELECT oprijmeni, ojmeno, omesto FROM osoba WHERE oobec IN (::obec) -- *obec*W1M*OBEC where KROK=3302*Bydliště - obec*535419

3) Seznam hodnot se vytvoří z definice parametru. Ze seznamu se vybere jedna nebo více hodnot (viz příklady u bodu 2).
- na 2. místě W2, na 3 místě "#" a číslo výčtu hodnot (#1, #2 ....)
- na dalších řádcích výčet dvojic KOD, HODNOTA, kde začátek je označen #číslem a značkou bol (begin of list – začátek seznamu), konec je označen #číslem a značkou eol (end of list - konec seznamu)
SELECT oprijmeni, ojmeno, omesto FROM osoba WHERE oobec = :obec -- *obec*W2*#1*Bydliště – obec*535419 -- #1 bol -- 535419*Mladá Boleslav -- 535427*Bakov nad Jizerou -- 545881*Jindřichův Hradec -- #1 eol
Popis parametrů:
-- *název parametru*datový typ*#číslo seznamu hodnot*popis parametru*defaultní hodnota
-- #číslo seznamu hodnot bol (bol = značka pro začátek seznamu)
-- kod1*nazev1
-- kod2*nazev2 ...
-- #číslo seznamu hodnot eol (eol = značka pro konec seznamu)

Případy pro výběr více hodnot (W1M, W2M) nejdou bindovat. Parametr se v dotazu označí dvěma dvojtečkami a dá do příkazu IN () - viz příklad u bodu 2 - více hodnot.