Suche…


Einführung

In SQL geben SELECT Anweisungen Ergebnissätze aus Datensammlungen wie Tabellen oder Ansichten zurück. SELECT Anweisungen können mit verschiedenen anderen Klauseln wie WHERE , GROUP BY oder ORDER BY , um die gewünschten Ergebnisse weiter zu verfeinern.

Grundauswahl aus der Tabelle

Wählen Sie alle Spalten aus einer Tabelle aus (Systemtabelle in diesem Fall):

SELECT *
FROM sys.objects

Oder wählen Sie nur einige bestimmte Spalten aus:

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

Zeilen mit der WHERE-Klausel filtern

Die WHERE-Klausel filtert nur die Zeilen, die bestimmte Bedingungen erfüllen:

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

Sortieren Sie die Ergebnisse mit ORDER BY

Die ORDER BY-Klausel sortiert Zeilen in der zurückgegebenen Ergebnismenge nach einer Spalte oder einem Ausdruck:

SELECT *
FROM sys.objects
ORDER BY create_date

Ergebnis mit GROUP BY zusammenfassen

GROUP BY-Klausel gruppiert Zeilen nach einem bestimmten Wert:

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

Sie können für jede Gruppe eine Funktion anwenden (Aggregatfunktion), um die Summe oder Anzahl der Datensätze in der Gruppe zu berechnen.

Art c
SQ 3
S 72
ES 16
PK 1
U 5

Filtern Sie Gruppen mithilfe der HAVING-Klausel

Die HAVING-Klausel entfernt Gruppen, die die Bedingung nicht erfüllen:

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

Nur die ersten N Zeilen zurückgeben

TOP-Klausel gibt nur die ersten N Zeilen im Ergebnis zurück:

SELECT TOP 10 *
FROM sys.objects

Paginierung mit OFFSET FETCH

Die Klausel OFFSET FETCH ist eine fortgeschrittenere Version von TOP. Sie können N1-Zeilen überspringen und die nächsten N2-Zeilen übernehmen:

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

Sie können OFFSET ohne Abruf verwenden, um nur die ersten 50 Zeilen zu überspringen:

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

SELECT ohne FROM (keine Datenquelle)

SELECT-Anweisung kann ohne FROM-Klausel ausgeführt werden:

declare @var int = 17;

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

In diesem Fall wird eine Zeile mit Werten / Ergebnissen von Ausdrücken zurückgegeben.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow