Udostępnij za pomocą


SELECT, klauzula (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstancePunkt końcowy analizy SQL w usłudze Microsoft FabricMagazyn w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Określa kolumny, które mają być zwracane przez zapytanie.

Transact-SQL konwencje składni

Syntax

SELECT [ ALL | DISTINCT ]  
[ TOP ( expression ) [ PERCENT ] [ WITH TIES ] ]   
<select_list>   
<select_list> ::=   
    {   
      *   
      | { table_name | view_name | table_alias }.*   
      | {  
          [ { table_name | view_name | table_alias }. ]  
               { column_name | $IDENTITY | $ROWGUID }   
          | udt_column_name [ { . | :: } { { property_name | field_name }   
            | method_name ( argument [ ,...n] ) } ]  
          | expression  
         }  
        [ [ AS ] column_alias ]   
      | column_alias = expression   
    } [ ,...n ]   

Arguments

ALL
Określa, że w zestawie wyników mogą pojawić się zduplikowane wiersze. All jest wartością domyślną.

DISTINCT
Określa, że w zestawie wyników mogą być wyświetlane tylko unikatowe wiersze. Wartości null są uznawane za równe dla celów słowa kluczowego DISTINCT.

TOP (wyrażenie ) [ PERCENT ] [ WITH TIES ]
Wskazuje, że z zestawu wyników zapytania zostanie zwrócony tylko określony pierwszy zestaw lub procent wierszy. wyrażenie może być liczbą lub procentem wierszy.

Aby uzyskać zgodność z poprzednimi wersjami, używanie wyrażenia TOP bez nawiasów w instrukcjach SELECT jest obsługiwane, ale nie zalecamy go. Aby uzyskać więcej informacji, zobacz TOP (Transact-SQL).

< > select_list Kolumny do wybrania dla zestawu wyników. Lista wyboru to seria wyrażeń rozdzielonych przecinkami. Maksymalna liczba wyrażeń, które można określić na liście wyboru, wynosi 4096.

*
Określa, że powinny zostać zwrócone wszystkie kolumny ze wszystkich tabel i widoków w klauzuli FROM. Kolumny są zwracane przez tabelę lub widok, jak określono w klauzuli FROM, i w kolejności, w jakiej istnieją w tabeli lub widoku.

| table_name | view_nametable_alias.*
Ogranicza zakres * do określonej tabeli lub widoku.

column_name
To nazwa kolumny, która ma być zwracana. Kwalifikują się column_name , aby zapobiec niejednoznacznemu odwołaniu, na przykład gdy dwie tabele w klauzuli FROM mają kolumny o zduplikowanych nazwach. Na przykład tabele SalesOrderHeader i SalesOrderDetail w AdventureWorks2025 bazie danych mają kolumnę o nazwie ModifiedDate. Jeśli dwie tabele są połączone w zapytaniu, zmodyfikowana data wpisów SalesOrderDetail można określić na liście wybierz jako SalesOrderDetail.ModifiedDate.

expression
Jest stałą, funkcją, dowolną kombinacją nazw kolumn, stałych i funkcji połączonych przez operatory lub podzapytania.

$IDENTITY
Zwraca kolumnę tożsamości. Aby uzyskać więcej informacji, zobacz IDENTITY (Property) (Transact-SQL), ALTER TABLE (Transact-SQL) i CREATE TABLE (Transact-SQL).

Jeśli więcej niż jedna tabela w klauzuli FROM zawiera kolumnę z właściwością IDENTITY, $IDENTITY musi być kwalifikowana z określoną nazwą tabeli, taką jak T1.$IDENTITY.

$ROWGUID
Zwraca kolumnę GUID wiersza.

Jeśli w klauzuli FROM znajduje się więcej niż jedna tabela z właściwością ROWGUIDCOL, $ROWGUID musi być kwalifikowana z określoną nazwą tabeli, taką jak T1.$ROWGUID.

udt_column_name
To nazwa kolumny typu zdefiniowanego przez użytkownika środowiska uruchomieniowego języka wspólnego (CLR) do zwrócenia.

Note

Program SQL Server Management Studio zwraca wartości typu zdefiniowane przez użytkownika w reprezentacji binarnej. Aby zwrócić wartości typu zdefiniowane przez użytkownika w ciągu lub formacie XML, użyj funkcji CAST lub CONVERT.

{ . | :: }
Określa metodę, właściwość lub pole typu zdefiniowanego przez użytkownika CLR. Używać. dla metody wystąpienia (niestatycznej), właściwości lub pola. Użyj polecenia :: dla metody statycznej, właściwości lub pola. Aby wywołać metodę, właściwość lub pole typu zdefiniowanego przez użytkownika CLR, musisz mieć uprawnienie EXECUTE dla typu .

property_name
Jest publiczną właściwością udt_column_name.

field_name
Jest członkiem udt_column_name danych publicznych.

method_name
To publiczna metoda udt_column_name , która przyjmuje co najmniej jeden argument. method_name nie może być metodą mutatora.

Poniższy przykład wybiera wartości kolumny Location zdefiniowanej jako typ pointz Cities tabeli, wywołując metodę typu o nazwie Distance:

CREATE TABLE dbo.Cities (  
     Name VARCHAR(20),  
     State VARCHAR(20),  
     Location POINT);  
GO  
DECLARE @p POINT (32, 23), @distance FLOAT;  
GO  
SELECT Location.Distance (@p)  
FROM Cities;  

column_alias
Jest alternatywną nazwą zastępującą nazwę kolumny w zestawie wyników zapytania. Na przykład alias, taki jak Quantity lub Quantity to Date, można określić dla kolumny o nazwie quantity.

Aliasy są również używane do określania nazw wyników wyrażeń, na przykład:

USE AdventureWorks2022;  
GO  
SELECT AVG(UnitPrice) AS [Average Price]  
FROM Sales.SalesOrderDetail;

column_alias można użyć w klauzuli ORDER BY. Nie można go jednak używać w klauzuli WHERE, GROUP BY lub HAVING. Jeśli wyrażenie zapytania jest częścią instrukcji DECLARE CURSOR, column_alias nie można użyć w klauzuli FOR UPDATE.

Remarks

Długość danych zwracanych dla kolumn tekstowych lub ntekstowych , które znajdują się na liście wyboru, jest ustawiona na najmniejszą wartość następującej: rzeczywisty rozmiar kolumny tekstowej , domyślne ustawienie sesji TEXTSIZE lub limit aplikacji zakodowanej w kodzie. Aby zmienić długość zwracanego tekstu dla sesji, użyj instrukcji SET. Domyślnie limit długości danych tekstowych zwracanych za pomocą instrukcji SELECT wynosi 4000 bajtów.

Aparat bazy danych programu SQL Server zgłasza wyjątek 511 i przywraca bieżącą instrukcję uruchomioną, jeśli wystąpi którekolwiek z następujących zachowań:

  • Instrukcja SELECT generuje wiersz wyniku lub pośredni wiersz tabeli roboczej przekraczający 8060 bajtów.

  • Instrukcja DELETE, INSERT lub UPDATE próbuje akcji w wierszu przekraczającym 8060 bajtów.

Błąd występuje, jeśli żadna nazwa kolumny nie jest określona dla kolumny utworzonej przez instrukcję SELECT INTO lub CREATE VIEW.

Zobacz też

PRZYKŁADY SELECT (Transact-SQL)
Wyrażenia (Transact-SQL)
WYBIERZ (Transact-SQL)