Megosztás a következőn keresztül:


SELECT záradék (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Megadja azokat az oszlopokat, amelyeket a Transact-SQL (T-SQL) lekérdezés visszaad.

Transact-SQL szintaxis konvenciók

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

Megadja, hogy ismétlődő sorok jelenjenek meg az eredményhalmazban. A ALL az alapértelmezett.

DISTINCT

Megadja, hogy csak egyedi sorok jelenjenek meg az eredményhalmazban. A null értékek a kulcsszó szempontjából egyenlőnek minősülnek DISTINCT .

TOP (kifejezés) [ PERCENT ] [ WITH TIES ]

Azt jelzi, hogy a lekérdezés eredményhalmazából csak a megadott első készlet vagy a sorok százaléka lesz visszaadva. kifejezés lehet a sorok száma vagy százaléka.

Bár TOP <expression> zárójelek nélkül a visszafelé kompatibilitásra vonatkozó utasítások támogatják SELECT , kerülje ezt a szintaxist. További információ: TOP.

<select_list>

Megadja az eredményhalmazhoz kijelölendő oszlopokat. A kijelölési lista vesszővel elválasztott kifejezések sorozata. A kijelölési listában megadható kifejezések maximális száma 4096.

*

Megadja, hogy a záradék összes táblájának és nézetének FROM minden oszlopát vissza kell adni. Az oszlopokat tábla vagy nézet adja vissza a FROM záradékban megadott módon, és abban a sorrendben, amelyben azok a táblában vagy nézetben léteznek.

| table_name | view_nametable_alias.*

A * hatókörét a megadott táblára vagy nézetre korlátozza.

column_name

A visszaadni kívánt oszlop neve. Minősítse column_name, hogy ne lehessen kétértelmű hivatkozást megadni, például akkor, ha a FROM záradék két táblája ismétlődő neveket tartalmazó oszlopokkal rendelkezik. Az adatbázis és SalesOrderDetail a SalesOrderHeaderAdventureWorks2025 táblák például egy oszlopot is tartalmaznakModifiedDate. Ha a két tábla egy lekérdezésben csatlakozik, a kijelölési listában SalesOrderDetail.ModifiedDatea bejegyzések módosított dátumát SalesOrderDetail is megadhatja.

expression

Egy operátor vagy operátor által csatlakoztatott állandó, függvény, oszlopnevek, állandók és függvények bármilyen kombinációja, vagy egy allekérdezés.

$IDENTITY

Az identitásoszlopot adja vissza. További információ: IDENTITY (Property), ALTER TABLE és CREATE TABLE.

Ha a FROM záradékban több tábla is tartalmaz egy oszlopot a IDENTITY tulajdonsággal, akkor a megadott táblanévvel kell rendelkeznie $IDENTITY , például T1.$IDENTITY.

$ROWGUID

A sor GUID oszlopát adja vissza.

Ha a FROM záradékban több tábla is rendelkezik a ROWGUIDCOL tulajdonsággal, akkor a megadott táblanévvel kell rendelkeznie $ROWGUID , például T1.$ROWGUID.

udt_column_name

A visszaadni kívánt közös nyelvi futtatókörnyezet (CLR) felhasználó által definiált típusoszlopának neve.

Note

Az SQL Server Management Studio a felhasználó által megadott típusértékeket adja vissza bináris reprezentációban. Ha a felhasználó által megadott típusértékeket sztring- vagy XML-formátumban szeretné visszaadni, használja a CAST, a CONVERT vagy a CAST és a CONVERT függvényt.

{ . | :: }

Felhasználó által definiált CLR-típus metódusát, tulajdonságát vagy mezőjét adja meg. Pont (.) használata példányhoz (nemsztatikus) metódushoz, tulajdonsághoz vagy mezőhöz. Használjon kettőspontot (::) statikus metódushoz, tulajdonsághoz vagy mezőhöz. A felhasználó által definiált CLR-típus metódusának, tulajdonságának vagy mezőjének meghívásához engedéllyel kell rendelkeznie EXECUTE a típushoz.

property_name

A udt_column_name köztulajdona.

field_name

A udt_column_name nyilvános adattagja.

method_name

Egy nyilvános udt_column_name metódus, amely egy vagy több argumentumot vesz igénybe. method_name nem lehet mutációs módszer.

Az alábbi példa a tábla típuspontkéntCities definiált oszlopának értékeit Location választja ki a következő típusú Distancemetódus meghívásával:

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

Alternatív név a lekérdezés eredményhalmazában lévő oszlopnév helyére. Például egy alias, például Quantitya , vagy Quantity a to Date, vagy Qty megadható egy nevű quantityoszlophoz.

Aliasok használatával megadhatja a kifejezések eredményeinek nevét, például:

USE AdventureWorks2025;
GO

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

column_alias használható egy ORDER BY záradékban. Nem használhatja azonban egy , GROUP BYvagy HAVING záradékbanWHERE. Ha a lekérdezési kifejezés egy DECLARE CURSOR utasítás része, column_alias nem használható a FOR UPDATE záradékban.

Remarks

Ha szöveg - vagy ntext oszlopokat tartalmaz a kijelölési listában, a visszaadott adatok hossza az alábbi lehetőségek legkisebb értéke:

  • a szövegoszlop tényleges mérete,
  • az alapértelmezett TEXTSIZE munkamenet-beállítás, vagy
  • a szigorúan kódolt alkalmazáskorlátot.

A visszaadott szöveg hosszának módosításához használja az utasítást SET . Alapértelmezés szerint az utasítás által SELECT visszaadott szöveges adatok hosszának korlátja 4000 bájt.

Az SQL Server adatbázismotor az 511-ös kivételt emeli ki, és visszaállítja az aktuális futó utasítást, ha az alábbi viselkedések valamelyike következik be:

  • Az SELECT utasítás egy 8060 bájtot meghaladó eredménysort vagy köztes munkatáblasort hoz létre.

  • Az DELETE, INSERTvagy UPDATE utasítás egy 8060 bájtot meghaladó sorban próbál meg műveletet.

Hiba történik, ha nem ad meg oszlopnevet egy vagy CREATE VIEW utasítás által SELECT INTO létrehozott oszlopnak.