Szukaj…


Wprowadzenie

W SQL instrukcje SELECT zwracają zestawy wyników ze zbiorów danych, takich jak tabele lub widoki. Instrukcje SELECT mogą być używane z różnymi innymi klauzulami, takimi jak WHERE , GROUP BY lub ORDER BY aby dodatkowo zawęzić pożądane wyniki.

Podstawowy WYBIERZ z tabeli

Wybierz wszystkie kolumny z jakiejś tabeli (w tym przypadku tabeli systemowej):

SELECT *
FROM sys.objects

Lub wybierz tylko niektóre konkretne kolumny:

SELECT object_id, name, type, create_date
FROM sys.objects

Filtruj wiersze za pomocą klauzuli WHERE

Klauzula WHERE filtruje tylko te wiersze, które spełniają pewien warunek:

SELECT *
FROM sys.objects
WHERE type = 'IT'

Sortuj wyniki za pomocą ORDER BY

Klauzula ORDER BY sortuje wiersze w zwróconym zestawie wyników według jakiejś kolumny lub wyrażenia:

SELECT *
FROM sys.objects
ORDER BY create_date

Wynik grupy za pomocą GROUP BY

Klauzula GROUP BY grupuje wiersze według pewnej wartości:

SELECT type, count(*) as c
FROM sys.objects
GROUP BY type

Możesz zastosować jakąś funkcję dla każdej grupy (funkcja agregująca), aby obliczyć sumę lub liczbę rekordów w grupie.

rodzaj do
SQ 3)
S. 72
TO 16
PK 1
U 5

Filtruj grupy za pomocą klauzuli HAVING

Klauzula HAVING usuwa grupy niespełniające warunku:

SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
HAVING count(*) < 10
rodzaj do
SQ 3)
PK 1
U 5

Zwracane tylko pierwsze N wierszy

Klauzula TOP zwraca tylko pierwsze N wierszy w wyniku:

SELECT TOP 10 *
FROM sys.objects

Podział na strony przy użyciu funkcji OFFSET FETCH

Klauzula OFFSET FETCH jest bardziej zaawansowaną wersją TOP. Umożliwia pominięcie wierszy N1 i zrobienie kolejnych wierszy N2:

SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY

Możesz użyć opcji PRZESUNIĘCIE bez pobierania, aby pominąć pierwsze 50 wierszy:

SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS

WYBIERZ bez FROM (bez souce danych)

Instrukcja SELECT może być wykonana bez klauzuli FROM:

declare @var int = 17;

SELECT @var as c1, @var + 2 as c2, 'third' as c3 

W takim przypadku zwracany jest jeden wiersz z wartościami / wynikami wyrażeń.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow