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 a lekérdezés által visszaadandó oszlopokat.

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. Az ALL az alapértelmezett.

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

TOP (kifejezés ) [ PERCENT ] [ WITH TIES ]
Azt jelzi, hogy a lekérdezés eredményhalmazából csak a megadott első halmaz vagy a sorok százaléka lesz visszaadva. kifejezés lehet a sorok száma vagy százaléka.

A visszamenőleges kompatibilitás érdekében a SELECT utasításokban zárójelek nélküli TOP-kifejezés használata támogatott, de nem javasoljuk. További információ: TOP (Transact-SQL).

< > select_list Az eredményhalmazhoz kijelölendő oszlopok. A kijelölési lista vesszővel elválasztott kifejezések sorozata. A kiválasztási listában megadható kifejezések maximális száma 4096.

*
Megadja, hogy a FROM záradék összes táblájának és nézetének 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ő nevű oszlopokkal rendelkezik. Az adatbázis SalesOrderHeader és SalesOrderDetail tábláinak AdventureWorks2025 például egy ModifiedDate nevű oszlopa van. Ha a két tábla össze van kapcsolva egy lekérdezésben, a SalesOrderDetail bejegyzések módosított dátuma a kiválasztási listában SalesOrderDetail.ModifiedDate néven adható meg.

expression
Egy operátor vagy operátor által összekapcsolt állandó, függvény, oszlopnevek, állandók és függvények tetszőleges kombinációja, vagy egy allekérdezés.

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

Ha a FROM záradékban több tábla is tartalmaz egy IDENTITY tulajdonsággal rendelkező oszlopot, $IDENTITY a megadott táblanévvel (például T1.$IDENTITY) kell minősíteni.

$ROWGUID
A sor GUID oszlopát adja vissza.

Ha a FROM záradékban több tábla is szerepel a ROWGUIDCOL tulajdonsággal, $ROWGUID a megadott táblanévvel kell minősíteni, 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 vagy 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. Használ. egy példány (nemsztatikus) metódus, tulajdonság vagy mező esetében. Használja a :: statikus metódust, tulajdonságot vagy mezőt. A felhasználó által definiált CLR-típus metódusának, tulajdonságának vagy mezőjének meghívásához végrehajtási engedéllyel kell rendelkeznie a típushoz.

property_name
A udt_column_name köztulajdona.

field_name
A nyilvános adatok udt_column_name tagja.

method_name
A udt_column_name egy vagy több argumentumot tartalmazó nyilvános metódusa. method_name nem lehet mutációs módszer.

Az alábbi példa a tábla típusként Locationpointdefiniált oszlopának értékeit Cities 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 POINT (32, 23), @distance FLOAT;  
GO  
SELECT Location.Distance (@p)  
FROM Cities;  

column_alias
Alternatív név a lekérdezés eredményhalmazában szereplő oszlopnév helyére. Megadhat például egy aliast, például a Quantity vagy a Quantity to Date (Mennyiség a dátumig) vagy a Qty (Mennyiség) értéket egy mennyiség nevű oszlophoz.

Az aliasok a kifejezések eredményeinek nevének megadására is használhatók, például:

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

column_alias az ORDER BY záradékban használható. A WHERE, GROUP BY vagy HAVING záradékban azonban nem használható. Ha a lekérdezési kifejezés egy DEKLARÁLT KURZOR utasítás része, column_alias nem használható a FOR UPDATE záradékban.

Remarks

A kijelölési listában szereplő szöveges vagy ntext oszlopokhoz visszaadott adatok hossza a következő legkisebb értékre van állítva: a szövegoszlop tényleges mérete, az alapértelmezett TEXTIZE munkamenet-beállítás vagy a kemény kóddal kódolt alkalmazáskorlát. A visszaadott szöveg hosszának módosításához használja a SET utasítást. Alapértelmezés szerint a SELECT utasítással 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és valamelyike következik be:

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

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

Hiba történik, ha a SELECT INTO vagy a CREATE VIEW utasítás által létrehozott oszlopban nincs megadva oszlopnév.

Lásd még:

SELECT-példák (Transact-SQL)
Kifejezések (Transact-SQL)
VÁLASZT (Transact-SQL)