Wybierz klauzuli (Transact-SQL)

Określa kolumn zwracanych przez kwerendę.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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 ] 

Argumenty

  • ALL
    Określa zduplikowane wiersze mogą być wyświetlane w zestaw wyników.Jest wartością domyślną.

  • DISTINCT
    Określa, że tylko unikatowe wiersze mogą pojawiać się w zestaw wyników.Wartości Null są traktowane jako równy dla celów słowo kluczowe DISTINCT.

  • GÓRY ()expression ) [procent] [WITH TIES]
    Wskazuje, że tylko określony najpierw zestaw lub procent wierszy będą zwracane z kwerendy zestaw wyników.expressionmoże to być liczba lub procent wierszy.

    W celu zapewnienia zgodności z poprzednimi wersjami korzystanie z góry expression bez nawiasów w wybierz instrukcje jest obsługiwane, ale nie zaleca się goAby uzyskać więcej informacji, zobacz U góry (Transact-SQL).

  • < select_list >
    Kolumny wybrane do zestaw wyników.Lista select jest szereg wyrażeń oddzielonych przecinkami.Maksymalna liczba wyrażeń, które mogą być określone na liście select wynosi 4096.

  • *
    Określa, że powinny być zwrócone wszystkie kolumny ze wszystkich tabel i widoków w klauzula FROM.Kolumny są zwracane przez tabela lub widok, określony w klauzulaFROM i w kolejności, w jakiej istnieją w tabela lub widoku.

  • table_name | view_name | table_alias.*
    Ogranicza zakres * do określonej tabela lub widoku.

  • column_name
    Jest to nazwa kolumna do zwrócenia.Kwalifikują się column_name Aby zapobiec niejednoznacznych odwołań, takich jakie występuje, gdy dwie tabele w klauzula FROM zostały kolumny zawierające zduplikowane nazwy.Na przykład SalesOrderHeader i SalesOrderDetail tabel w AdventureWorks2008R2 bazy danych mają kolumna o nazwie ModifiedDate.Jeśli dwie tabele są połączone w kwerendzie modyfikacji data SalesOrderDetail Zapisy można określić na liście wybierz jako SalesOrderDetail.ModifiedDate.

  • expression
    Jest stała, funkcja, dowolną kombinację nazw kolumna , stałe i funkcje połączone przy użyciu operator lub operatorów lub podzapytanie.

  • TOŻSAMOŚĆ $
    Zwraca kolumnatożsamości.Aby uzyskać więcej informacji, zobacz TOŻSAMOŚĆ (właściwość) (Transact-SQL), ALTER TABLE (Transact-SQL) i CREATE TABLE (Transact-SQL).

    Jeśli więcej niż jednej tabela w klauzula FROM zawiera kolumna tożsamości, właściwość, tożsamość $ musi być kwalifikowany o nazwie określonej tabela , takich jak T1.$IDENTITY.

  • $ROWGUID
    Zwraca identyfikator GUID kolumnawiersza.

    Jeśli istnieje więcej niż jednej tabela w klauzula FROM ROWGUIDCOL właściwość, $ROWGUID musi być kwalifikowany o nazwie określonej tabela , takich jak T1.$ROWGUID.

  • udt_column_name
    Jest to nazwa wspólnej języka runtime (CLR) typ zdefiniowany przez użytkownika kolumna do zwrócenia.

    Ostrzeżenie

    SQL Server Management StudioZwraca wartości typ zdefiniowany przez użytkownika reprezentacja binarna.Aby zwracać wartości typ zdefiniowany przez użytkownika w formacie XML lub ciąg , należy użyć ODDANYCH lub PRZEKONWERTOWAĆ.

  • { . | :: }
    Określa metoda, właściwośćlub pole zdefiniowany przez użytkownika typ CLR.Use . dla wystąpienie (nonstatic), metoda, właściwośćlub pole.Use :: dla właściwość, statycznej metodalub pole.Aby wywołać metoda, właściwośćlub pole zdefiniowany przez użytkownika typ CLR, musi mieć uprawnienie EXECUTE do typu.

  • property_name
    Jest publiczny właściwość udt_column_name.

  • field_name
    Publiczne element członkowski danych udt_column_name.

  • method_name
    Jest publiczna metoda udt_column_name pobierająca jeden lub więcej argumentów.method_namenie można mutator metoda.

    Poniższy przykład wybiera wartości dla Location kolumnazdefiniowane jako typ point, z Cities tabela, wywołując metoda typu o nazwie Distance:

    CREATE TABLE 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 alternatywna nazwa ma zastąpić nazwę kolumna w kwerendzie zestaw wyników.Na przykład alias takich jak Quantity, lub Quantity to Date, lub Qty można określić kolumna o nazwie quantity.

    Aliasy są również używane do określenia nazwy wyniki wyrażenia, na przykład:

    USE AdventureWorks2008R2;

    GO

    SELECT AVG(UnitPrice) AS 'Average Price'

    FROM Sales.SalesOrderDetail;

    column_aliasmogą być używane w kolejności według klauzula.Jednak nie można używać w przypadku gdy, GROUP BY lub HAVING klauzula.Jeśli wyrażenie kwerendy jest częścią DECLARE CURSOR instrukcja column_alias nie można używać w aktualizacji dla klauzula.

Uwagi

Długość danych zwracanych do text lub ntext kolumny, które znajdują się na liście wybierz jest zestaw do najmniejszej wartości następujących: rzeczywisty rozmiar text kolumna, ustawienie domyślne TEXTSIZE sesja lub limit ustalonych aplikacji.Aby zmienić długość zwrócony tekst sesja, należy użyć zestawu instrukcja.Domyślnie limit długości tekstu dane zwrócone z instrukcja SELECT wynosi 4 000 bajtów.

Aparat baz danych programu SQL Server Podnosi wyjątek 511 i wycofuje aktualne uruchomione instrukcja , jeśli następujące zachowania:

  • instrukcja SELECT tworzy wiersz tabela pośrednie pracy przekracza 8,060 bajtów lub wiersz wyników.

  • instrukcja DELETE, INSERT lub UPDATE podejmowana akcja dla wiersza przekracza 8,060 bajtów.

Jeśli nazwa kolumna nie jest określona kolumna utworzony przez instrukcjaSELECT INTO lub tworzenie WIDOKU wystąpi błąd.