Promotic

SELECT - polecenie języka DB_MSSQL

Opis:
Zapytanie o dane. Wynik jest zawsze w postaci tabeli.
Składnia:

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

lines Ograniczenie ilości uzyskanych wierszy.
percent Ograniczenie ilości uzyskanych wierszy określone procentowo (0-100).
select_list Lista kolumn wyników zapytań (wyniki oddzielone przecinkiem) lub znak '*' (oznacza wszystkie kolumny).
new_table Nazwa nowej tabeli, powstałej na wynik zapytania.
table_source Lista tabelek zastosowanych w zapytaniu (tabeli oddzielone przecinkiem).
search_condition Wyrażenie logiczne określające, które wiersze źródłowej tabeli mają być w zapytaniu (jeżeli nie zostanie określone WHERE, wtedy to znaczy wszystkie rekordy).
order_expression Określa kolumnę, według której zostanie uszeregowany wynik zapytania.
ASC Sortowanie będzie rosnąco (domyślnie)
DESC Sortowanie będzie malejąco
Notatka:
Składnia polecenia SELECT w rzeczywistości jest bardziej kompleksowa oraz zawiera na przykład klauzule GROUP BY oraz HAVING, umożliwiające wykonywać operacje grupowe (sumy, średnie, ilości) ponad grupami rekordów.
Patrz również:
Przykład1:
Uzyska wszystkie kolumny dla wszystkich rekordów z tabeli data.
SELECT * FROM data
Przykład2:
Uzyska wszsystkie kolumny dla pierwszych 10 rekordów z tabeli data (uszeregowane według czasu).
SELECT TOP 10 * FROM data ORDER BY time
Przykład3:
Uzyska wszystkie kolumny dla rekordów spełniających określony warunek (czas jest większe niż 2. lipca 2003 10:02:00) z tabeli data, wynik jest uszeregowany rosnąco według kolumny time. Obydwa zapisy są ekwiwalentne (czas z dokładnoscią aż do ms można określić w obu formatach).
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
Przykład4:
Uzyska wybrane kolumny oraz dla rekordów spełniających okeślony warunek (wartość 'value' znajduje się w zakresie od 20 do 80) z tabeli data, wynik jest uszeregowany rosnąco według kolumny time. Obydwa zapisy są ekwiwalentne.
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
Przykład5:
Uzyska ilość rekordów, sumę wartości oraz średnią wartość dla rekordów spełniających warunek z tabeli data, gdzie obliczone kolumny posiadają określone nazwy.
SELECT COUNT(*) AS Count, SUM(value) AS Suma, AVG(value) AS Average FROM data WHERE value BETWEEN 20 AND 80
Przykład6:
Uzyska kolumnę time oraz obliczoną kolumnę (wartość 'value' zaokrąglona do liczby całkowitej) wszystkich rekordów z tabeli data.
SELECT time, ROUND(value,0) AS Round_0 FROM data
Przykład7:
Uzyska wszystkie kolumny dla żadnych rekordów (WHERE 1=0 jest zawsze nieprawda) z tabeli data oraz zapis wyniku do nowej tabeli data_copy. To znaczy, że zostanie skopiowana tylko struktura tabeli. Klauzula WHERE określa, czy oraz które rekordy należy skopiować do nowej tabeli.
SELECT * INTO data_copy FROM data WHERE 1=0
© MICROSYS, spol. s r.o.