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> ::= * | <select-sublist> [, <select-sublist> ...] <select-sublist> ::= <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 (alias) remplacent le nom original d’une table, d’une vue ou d’une 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é.