Partager via


CLAUSE SELECT (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceEndpoint SQL analytics dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

Spécifie les colonnes retournées par la requête Transact-SQL (T-SQL).

Conventions de la syntaxe Transact-SQL

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

Indique que les doublons de lignes peuvent apparaître dans le jeu de résultats. ALL est la valeur par défaut.

DISTINCT

Indique que seules des lignes uniques peuvent apparaître dans le jeu de résultats. Les valeurs Null sont considérées comme égales aux fins du DISTINCT mot clé.

TOP (expression) [ PERCENT ] [ WITH TIES ]

Indique que seul un premier jeu spécifié ou un pourcentage de lignes sont retournés à partir du jeu de résultats de la requête. L'argumentexpression peut être un nombre ou un pourcentage de lignes.

Bien que TOP <expression> sans parenthèses soit prise en charge dans SELECT les instructions de compatibilité descendante, évitez cette syntaxe. Pour plus d’informations, voir TOP.

<select_list>

Spécifie les colonnes à sélectionner pour le jeu de résultats. La liste de sélection est une série d'expressions séparées par des virgules. Le nombre maximal d’expressions que vous pouvez spécifier dans la liste de sélection est de 4 096.

*

Spécifie que toutes les colonnes de toutes les tables et vues de la FROM clause doivent être retournées. Les colonnes sont retournées par table ou vue, comme spécifié dans la clause, et dans l’ordre FROM dans lequel elles existent dans la table ou la vue.

| table_name | view_nametable_alias.*

Limite l'étendue de l'astérisque * sur la table ou la vue spécifiée.

column_name

Nom d’une colonne à retourner. Qualifiez column_name pour empêcher une référence ambiguë, par exemple lorsque deux tables de la FROM clause ont des colonnes avec des noms en double. Par exemple, les SalesOrderHeader tables de SalesOrderDetail la AdventureWorks2025 base de données ont toutes deux une colonne nommée ModifiedDate. Si les deux tables sont jointes à une requête, vous pouvez spécifier la date de modification des SalesOrderDetail entrées dans la liste de sélection en tant que SalesOrderDetail.ModifiedDate.

expression

Constante, fonction, combinaison de noms de colonnes, de constantes et de fonctions connectées par un opérateur ou un opérateur ou une sous-requête.

$IDENTITY

Renvoie la colonne d'identité. Pour plus d’informations, consultez IDENTITY (Propriété),ALTER TABLE et CREATE TABLE.

Si plusieurs tables de la FROM clause possèdent une colonne avec la IDENTITY propriété, vous devez être éligible $IDENTITY avec le nom de la table spécifique, par T1.$IDENTITYexemple .

$ROWGUID

Retourne la colonne GUID de la ligne.

Si plusieurs tables de la clause possèdent FROM la ROWGUIDCOL propriété, vous devez être éligible $ROWGUID avec le nom de table spécifique, tel que T1.$ROWGUID.

udt_column_name

Nom d’une colonne de type clR (Common Language Runtime) définie par l’utilisateur à retourner.

Note

SQL Server Management Studio renvoie des valeurs d'un type défini par l'utilisateur en représentation binaire. Pour retourner des valeurs de type définies par l’utilisateur au format chaîne ou XML, utilisez CAST et CONVERTou CAST et CONVERT.

{ . | :: }

Spécifie une méthode, une propriété ou un champ d'un type CLR défini par l'utilisateur. Utilisez un point (.) pour une méthode, une propriété ou un champ d’instance (non statique). Utilisez un double-signe deux-points (::) pour une méthode statique, une propriété ou un champ. Pour appeler une méthode, une propriété ou un champ d’un type CLR défini par l’utilisateur, vous devez disposer EXECUTE d’autorisations sur le type.

property_name

Propriété publique de udt_column_name.

field_name

Membre de données publiques de udt_column_name.

method_name

Méthode publique de udt_column_name qui prend un ou plusieurs arguments. method_name ne peut pas être une méthode mutator.

L’exemple suivant sélectionne les valeurs de la Location colonne, définies en tant que point de type, dans la Cities table, en appelant une méthode du type appelé 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

Autre nom pour remplacer le nom de colonne dans le jeu de résultats de la requête. Par exemple, un alias tel que Quantity, ou Quantity à Date, ou Qty peut être spécifié pour une colonne nommée quantity.

Vous pouvez utiliser des alias pour spécifier des noms pour les résultats des expressions, par exemple :

USE AdventureWorks2025;
GO

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

column_alias pouvez être utilisé dans une ORDER BY clause. Toutefois, vous ne pouvez pas l’utiliser dans un WHERE, GROUP BYou HAVING une clause. Si l’expression de requête fait partie d’une DECLARE CURSOR instruction, column_alias ne peut pas être utilisée dans la FOR UPDATE clause.

Remarks

Lorsque vous incluez du texte ou des colonnes ntext dans la liste de sélection, la longueur des données retournées est la plus petite valeur des options suivantes :

  • taille réelle de la colonne de texte ,
  • le paramètre de session par défaut TEXTSIZE , ou
  • limite d’application codée en dur.

Pour modifier la longueur du texte retourné pour la session, utilisez l’instruction SET . Par défaut, la limite de longueur des données de texte retournées par une SELECT instruction est de 4 000 octets.

Le moteur de base de données SQL Server déclenche l’exception 511 et restaure l’instruction en cours d’exécution si l’un des comportements suivants se produit :

  • L’instruction SELECT produit une ligne de résultat ou une ligne de table de travail intermédiaire qui dépasse 8 060 octets.

  • L’instruction DELETE, ou UPDATE , INSERTtente une action sur une ligne qui dépasse 8 060 octets.

Une erreur se produit si vous ne spécifiez pas de nom de colonne pour une colonne créée par une SELECT INTO ou CREATE VIEW une instruction.