Liste des champs`SELECT`
La liste des champs contient une ou plusieurs expressions séparées par des virgules. Le résultat de chaque expression est la valeur du champ correspondant dans l'ensemble de données SELECT
. L'exception est l'expression *
('asterisk'), qui renvoie tous les champs de la relation.
SELECT [...] [DISTINCT | ALL] <select_list> [...] FROM ... <select_list> ::= * | <output_column> [, <output_column> ...] <output_column> ::= <qualifier>.* | <value_expression> [COLLATE collation] [[AS] alias] <value-expression> ::= [<qualifier>.]col_name | [<qualifier>.]selectable_SP_outparm | <literal> | <context-variable> | <function-call> | <single-value-subselect> | <CASE-construct> | <other-single-value-expr>
Paramètre | Description |
---|---|
qualifier | Nom de la table (vue) ou alias d'une table (vue, procédure stockée, table dérivée). |
collation | Nom de tri existant (uniquement pour les colonnes de type caractère). |
alias | Alias du champ. |
col_name | La colonne d'une table ou d'une vue. |
selectable-SP-outparm | Le paramètre de sortie d'une procédure stockée sélective. |
literal | Litéral |
context-variable | La variable de contexte. |
function-call | Appeler une fonction scalaire, agrégat ou window. |
single-value-subselect | Une sous-requête qui renvoie une seule valeur scalaire. |
CASE-construct | Design CASE. |
other-single-value-expr | Toute autre expression qui renvoie une seule valeur de type de données Firebird ou |
Une bonne pratique consiste à spécifier le nom du champ (ou *
) avec le nom de la table/vue/procédure de stockage (ou son alias) à laquelle le champ appartient. Par exemple, relationname.columnname
, relationname.*
, alias.columnname
, alias.*
. La spécification du nom devient obligatoire si un champ portant le même nom se trouve dans plus d'une relation participant à l'union. La spécification de *
est toujours obligatoire si ce n'est pas le seul élément de la liste de colonnes.
Important | Note Les alias remplacent le nom original de la table/vue/procédure stockée : une fois qu'un alias est défini pour la relation correspondante, le nom original ne peut plus être utilisé. |
Les mots-clés DISTINCT ou ALL peuvent être ajoutés au début de la liste des champs :
DISTINCT supprime les lignes en double : c'est-à-dire que si deux entrées ou plus contiennent les mêmes valeurs dans tous les champs pertinents, une seule de ces lignes sera incluse dans le jeu de données résultant.
ALL inclut toutes les lignes dans le jeu de données résultant. ALL est activé par défaut et donc rarement utilisé : une référence explicite est maintenue pour la compatibilité avec la norme SQL.
La clause COLLATE
ne modifie pas le contenu d'un champ ; cependant, le fait de spécifier COLLATE
pour un champ particulier peut modifier la sensibilité à la casse ou aux accents des caractères, ce qui peut à son tour affecter :
Ordre de tri, au cas où ce champ est spécifié dans une expression
ORDER BY
;Le regroupement, au cas où ce champ est spécifié dans la clause
GROUP BY
;Le nombre de lignes retournées si
DISTINCT
est utilisé.