Microsoft SQL Server
VÄLJ uttalande
Sök…
Introduktion
I SQL returnerar SELECT
uttalanden uppsättningar av resultat från datasamlingar som tabeller eller vyer. SELECT
uttalanden kan användas med olika andra klausuler som WHERE
, GROUP BY
eller ORDER BY
att ytterligare förfina de önskade resultaten.
Grundläggande VÄLJ från tabellen
Välj alla kolumner från någon tabell (systemtabell i detta fall):
SELECT *
FROM sys.objects
Eller välj bara några specifika kolumner:
SELECT object_id, name, type, create_date
FROM sys.objects
Filtrera rader med WHERE-klausulen
VAR klausul filtrerar endast de rader som uppfyller vissa villkor:
SELECT *
FROM sys.objects
WHERE type = 'IT'
Sortera resultat med ORDER BY
ORDER BY-klausul sorterar rader i det returnerade resultatet som är inställt av någon kolumn eller uttryck:
SELECT *
FROM sys.objects
ORDER BY create_date
Gruppresultat med GROUP BY
GRUPP AV klausul grupperar rader med något värde:
SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
Du kan tillämpa någon funktion på varje grupp (aggregerad funktion) för att beräkna summan eller räkningen av poster i gruppen.
typ | c |
---|---|
SQ | 3 |
S | 72 |
DEN | 16 |
PK | 1 |
U | 5 |
Filtrera grupper med HAVING-klausul
HAVING-klausul tar bort grupper som inte uppfyller villkoret:
SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
HAVING count(*) < 10
typ | c |
---|---|
SQ | 3 |
PK | 1 |
U | 5 |
Återvänd endast de första N-raderna
TOP-klausulen returnerar endast de första N-raderna i resultatet:
SELECT TOP 10 *
FROM sys.objects
Pagination med OFFSET FETCH
OFFSET FETCH-klausulen är en mer avancerad version av TOP. Det gör att du kan hoppa över N1-rader och ta nästa N2-rader:
SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY
Du kan använda OFFSET utan att hämta för att bara hoppa över de första 50 raderna:
SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS
VÄLJ utan FÅR (ingen data souce)
SELECT-uttalande kan köras utan FROM-klausul:
declare @var int = 17;
SELECT @var as c1, @var + 2 as c2, 'third' as c3
I detta fall returneras en rad med värden / resultat av uttryck.