Promotic

SELECT - příkaz jazyka DB_MSSQL

Popis:
Dotaz na data. Výsledek je vždy v tabulkové podobě.
Syntaxe:

SELECT [ TOP lines | TOP percent PERCENT ] select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]

lines Omezení počtu získaných řádků.
percent Omezení počtu získaných řádků vyjádřeno procenty (0-100).
select_list Seznam sloupců výsledků dotazu (výrazy oddělené čárkou) nebo znak '*' (znamená všechny sloupce).
new_table Název nové tabulky, vzniklé jako výsledek dotazu.
table_source Seznam tabulek použitých v dotazu (tabulky oddělené čárkou).
search_condition Logický výraz určující, které řádky zdrojových tabulek zahrnout do výsledku dotazu (pokud se neuvede WHERE, pak to znamená všechny záznamy).
order_expression Určuje sloupec, podle kterého bude výsledek dotazu setříděn.
ASC Třídění bude vzestupně (přednastaveno)
DESC Třídění bude sestupně
Poznámka:
Syntaxe příkazu SELECT je ve skutečnosti ještě mnohem komplexnější a obsahuje například klauzule GROUP BY a HAVING, umožňující provádět skupinové operace (sumace, průměry, počty) nad skupinami záznamů.
Viz také:
Příklad1:
Získá všechny sloupce pro všechy záznamy z tabulky data.
SELECT * FROM data
Příklad2:
Získá všechny sloupce pro prvních 10 záznamů z tabulky data (tříděno podle času).
SELECT TOP 10 * FROM data ORDER BY time
Příklad3:
Získá všechny sloupce pro záznamy splňující zadanou podmínku (čas je větší než 2. července 2003 10:02:00) z tabulky data, výsledek je setříděn vzestupně podle sloupce time. Oba zápisy jsou ekvivalentní (čas s přesností až na ms lze uvést u obou formátů).
SELECT * FROM data WHERE time>'2003-07-02 10:02:00' ORDER BY time
SELECT * FROM data WHERE time>'07/02/2003 10:02:00.000' ORDER BY time
Příklad4:
Získá vybrané sloupce a pro záznamy splňující zadanou podmínku (hodnota 'value' je v rozsahu od 20 do 80) z tabulky data, výsledek je setříděn vzestupně podle sloupce time. Oba zápisy jsou ekvivalentní.
SELECT time, value FROM data WHERE value > 20 AND value < 80 ORDER BY time
SELECT time, value FROM data WHERE value BETWEEN 20 AND 80 ORDER BY time
Příklad5:
Získá počet záznamů, součet hodnot a průměrnou hodnotu pro záznamy splňující zadanou podmínku z tabulky data, kde vypočtené sloupce jsou pojmenovány zadanými názvy.
SELECT COUNT(*) AS Count, SUM(value) AS Suma, AVG(value) AS Average FROM data WHERE value BETWEEN 20 AND 80
Příklad6:
Získá sloupec time a vypočtený sloupec (hodnota 'value' zaokrouhlená na celé číslo) všech záznamů z tabulky data.
SELECT time, ROUND(value,0) AS Round_0 FROM data
Příklad7:
Získá všechny sloupce pro žádný záznam (WHERE 1=0 je vždy neplatné) z tabulky data a uloží výsledek do nové tabulky data_copy. To znamená, že se zkopíruje pouze struktura tabulky. Klauzule WHERE určuje, zda a které záznamy do nové tabulky zkopírovat.
SELECT * INTO data_copy FROM data WHERE 1=0
© MICROSYS, spol. s r.o.