Delen via


SELECT-component (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Hiermee geeft u de kolommen op die de Transact-SQL (T-SQL)-query retourneert.

Transact-SQL syntaxis-conventies

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

Hiermee geeft u op dat dubbele rijen kunnen worden weergegeven in de resultatenset. ALL is de standaardwaarde.

DISTINCT

Hiermee geeft u op dat alleen unieke rijen kunnen worden weergegeven in de resultatenset. Null-waarden worden als gelijk beschouwd voor de doeleinden van het DISTINCT trefwoord.

TOP (expressie) [ PERCENT ] [ MET TIES ]

Geeft aan dat alleen een opgegeven eerste set of percentage rijen wordt geretourneerd uit de resultatenset van de query. expressie kan een getal of een percentage van de rijen zijn.

Hoewel TOP <expression> zonder haakjes wordt ondersteund in SELECT instructies voor compatibiliteit met eerdere versies, vermijdt u deze syntaxis. Zie TOP voor meer informatie.

<select_list>

Hiermee geeft u de kolommen die moeten worden geselecteerd voor de resultatenset. De selectielijst is een reeks expressies gescheiden door komma's. Het maximum aantal expressies dat u in de selectielijst kunt opgeven, is 4096.

*

Hiermee geeft u op dat alle kolommen uit alle tabellen en weergaven in de FROM component moeten worden geretourneerd. De kolommen worden geretourneerd door een tabel of weergave, zoals opgegeven in de FROM component, en in de volgorde waarin ze in de tabel of weergave staan.

| table_name | view_nametable_alias.*

Beperkt het bereik van de * tot de opgegeven tabel of weergave.

column_name

De naam van een kolom die moet worden geretourneerd. In aanmerking komen column_name om te voorkomen dat een dubbelzinnige verwijzing wordt gebruikt, zoals wanneer twee tabellen in de FROM component kolommen met dubbele namen bevatten. De tabellen SalesOrderDetail in de database hebben bijvoorbeeld SalesOrderHeader beide een kolom met de AdventureWorks2025 naam ModifiedDate. Als de twee tabellen zijn samengevoegd in een query, kunt u de gewijzigde datum van de SalesOrderDetail items in de selectielijst opgeven als SalesOrderDetail.ModifiedDate.

expression

Een constante, functie, elke combinatie van kolomnamen, constanten en functies die zijn verbonden door een operator of operator of een subquery.

$IDENTITY

Retourneert de identiteitskolom. Zie IDENTITY (Property), ALTER TABLE en CREATE TABLE voor meer informatie.

Als meer dan één tabel in de FROM component een kolom met de IDENTITY eigenschap bevat, moet u in aanmerking komen $IDENTITY met de specifieke tabelnaam, zoals T1.$IDENTITY.

$ROWGUID

Retourneert de rij-GUID-kolom.

Als meer dan één tabel in de FROM component de ROWGUIDCOL eigenschap heeft, moet u in aanmerking komen $ROWGUID met de specifieke tabelnaam, zoals T1.$ROWGUID.

udt_column_name

De naam van een door de gebruiker gedefinieerde kolom common language runtime (CLR) die moet worden geretourneerd.

Note

SQL Server Management Studio retourneert door de gebruiker gedefinieerde typewaarden in binaire weergave. Als u door de gebruiker gedefinieerde typewaarden wilt retourneren in tekenreeks- of XML-indeling, gebruikt u CAST en CONVERTEREN of CONVERTEREN.

{ . | :: }

Hiermee geeft u een methode, eigenschap of veld van een door de gebruiker gedefinieerde CLR-type op. Gebruik een punt (.) voor een instantiemethode (niet-statische) methode, eigenschap of veld. Gebruik een dubbele dubbele punt (::) voor een statische methode, eigenschap of veld. Als u een methode, eigenschap of veld van een door de gebruiker gedefinieerde CLR-type wilt aanroepen, moet u gemachtigd zijn EXECUTE voor het type.

property_name

Een openbare eigenschap van udt_column_name.

field_name

Een lid van openbare gegevens van udt_column_name.

method_name

Een openbare methode van udt_column_name die een of meer argumenten gebruikt. method_name kan geen mutatormethode zijn.

In het volgende voorbeeld worden de waarden voor de Location kolom, gedefinieerd als typepunt, uit de Cities tabel geselecteerd door een methode aan te roepen van het type dat wordt aangeroepen Distance:

CREATE TABLE dbo.Cities
(
    Name VARCHAR (20),
    State VARCHAR (20),
    Location POINT
);
GO

DECLARE @p AS POINT (32, 23),
        @distance AS FLOAT;

SELECT Location.Distance(@p)
FROM Cities;

column_alias

Een alternatieve naam om de kolomnaam in de queryresultatenset te vervangen. Bijvoorbeeld een alias zoals Quantity, of Quantity aan Date, of Qty kan worden opgegeven voor een kolom met de naam quantity.

U kunt aliassen gebruiken om namen op te geven voor de resultaten van expressies, bijvoorbeeld:

USE AdventureWorks2025;
GO

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

column_alias kan worden gebruikt in een ORDER BY component. U kunt deze echter niet gebruiken in een WHERE, GROUP BYof HAVING component. Als de query-expressie deel uitmaakt van een DECLARE CURSOR instructie, kan column_alias niet worden gebruikt in de FOR UPDATE component.

Remarks

Wanneer u tekst- of ntekstkolommen in de selectielijst opneemt, is de lengte van de geretourneerde gegevens de kleinste waarde van de volgende opties:

  • de werkelijke grootte van de tekstkolom ,
  • de standaardsessie-instelling TEXTSIZE of
  • de in code vastgelegde toepassingslimiet.

Als u de lengte van de geretourneerde tekst voor de sessie wilt wijzigen, gebruikt u de SET instructie. De limiet voor de lengte van tekstgegevens die door een SELECT instructie worden geretourneerd, is standaard 4000 bytes.

De SQL Server Database Engine genereert uitzondering 511 en rolt de huidige actieve instructie terug als een van de volgende gedragingen zich voordoet:

  • De SELECT instructie produceert een resultaatrij of een tussenliggende werktabelrij die groter is dan 8.060 bytes.

  • Met DELETEde instructie , INSERTof UPDATE wordt een actie uitgevoerd op een rij die groter is dan 8060 bytes.

Er treedt een fout op als u geen kolomnaam opgeeft voor een kolom die is gemaakt door een SELECT INTO of-instructie CREATE VIEW .