

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Liste SELECT
<a name="r_SELECT_list"></a>

**Topics**
+ [Syntaxe](#r_SELECT_list-synopsis)
+ [Parameters](#r_SELECT_list-parameters)
+ [Notes d’utilisation](#r_SELECT_list_usage_notes)
+ [Exemples](#r_SELECT_list-examples)

La liste SELECT nomme les colonnes, fonctions et expressions que la requête doit renvoyer. La liste représente le résultat de la requête. 

Pour plus d’informations sur les fonctions SQL, consultez [Référence sur les fonctions SQL](c_SQL_functions.md). Pour plus d’informations sur les expressions, consultez [Expressions conditionnelles](c_conditional_expressions.md).

## Syntaxe
<a name="r_SELECT_list-synopsis"></a>

```
SELECT
[ TOP number ]
[ ALL | DISTINCT ] * | expression [ AS column_alias ] [, ...]
```

## Parameters
<a name="r_SELECT_list-parameters"></a>

TOP *nombre*   
TOP accepte un nombre entier positif comme argument, qui définit le nombre de lignes retournées au client. Le comportement avec la clause TOP est identique à celui avec la clause LIMIT. Le nombre de lignes qui est renvoyé est fixe, contrairement à l’ensemble de lignes. Pour renvoyer un ensemble de lignes constant, utilisez TOP ou LIMIT avec une clause ORDER BY. 

ALL   
Mot-clé redondant qui définit le comportement par défaut, si vous ne spécifiez pas DISTINCT. `SELECT ALL *` signifie la même chose que `SELECT *` (sélectionner toutes les lignes de toutes les colonnes et conserver les doublons). 

DISTINCT   
Option qui élimine les lignes en double du jeu de résultats, en fonction de la correspondance des valeurs dans une ou plusieurs colonnes.   
Si votre application autorise les clés étrangères ou primaires non valides, les requêtes peuvent renvoyer des résultats incorrects. Par exemple, une requête SELECT DISTINCT peut renvoyer des lignes dupliquées si la colonne de clé primaire ne contient pas que des valeurs uniques. Pour plus d'informations, consultez [Définition des contraintes de table](https://docs.aws.amazon.com/redshift/latest/dg/t_Defining_constraints.html).

\$1 (astérisque)   
renvoie tout le contenu de la table (toutes les colonnes et toutes les lignes). 

 *expression*   
Expression formée d’une ou de plusieurs colonnes qui existent dans les tables référencées par la requête. Une expression peut contenir des fonctions SQL. Par exemple :   

```
avg(datediff(day, listtime, saletime))
```

AS *alias\$1colonne*   
Nom temporaire de la colonne utilisé dans le jeu de résultats final. Le mot-clé AS est facultatif. Par exemple :   

```
avg(datediff(day, listtime, saletime)) as avgwait
```
Si vous ne spécifiez pas un alias pour une expression qui n’est pas un nom de colonne simple, le jeu de résultats applique un nom par défaut à cette colonne.   
L’alias est reconnu juste après sa définition dans la liste cible. Vous pouvez utiliser un alias dans d’autres expressions définies après lui dans la même liste cible. L’exemple suivant illustre ce scénario.   

```
select clicks / impressions as probability, round(100 * probability, 1) as percentage from raw_data;
```
La référence latérale à un alias vous évite de devoir répéter l’expression disposant d’un alias lors de la création d’expressions plus complexes dans la même liste cible. Lorsqu’Amazon Redshift analyse ce type de référence, il rajoute simplement dans la ligne les alias précédemment définis. S’il existe une colonne avec le même nom défini dans la clause `FROM` que dans l’expression disposant d’un alias précédente, la colonne dans la clause `FROM` a la priorité. Par exemple, dans la requête précédente, s’il existe une colonne nommée « probability » dans la table raw\$1data, le terme « probability » dans la seconde expression de la liste cible fait référence à cette colonne et non au nom d’alias « probability ». 

## Notes d’utilisation
<a name="r_SELECT_list_usage_notes"></a>

TOP est une extension SQL ; elle fournit une alternative au comportement LIMIT. Vous ne pouvez pas utiliser TOP et LIMIT dans la même requête.

## Exemples
<a name="r_SELECT_list-examples"></a>

L’exemple suivant renvoie 10 lignes de la table SALES. Bien que la requête utilise la clause TOP, elle renvoie toujours un ensemble imprévisible de lignes, car aucune clause ORDER BY n’est spécifiée.

```
select top 10 *
from sales;
```

La requête suivante est fonctionnellement équivalente, mais utilise une clause LIMIT au lieu d’une clause TOP :

```
select *
from sales
limit 10;
```

L’exemple suivant renvoie les 10 premières lignes de la table SALES en utilisant la clause TOP, classées dans la colonne QTYSOLD par ordre décroissant.

```
select top 10 qtysold, sellerid
from sales
order by qtysold desc, sellerid;

qtysold | sellerid
--------+----------
8 |      518
8 |      520
8 |      574
8 |      718
8 |      868
8 |     2663
8 |     3396
8 |     3726
8 |     5250
8 |     6216
(10 rows)
```

L’exemple suivant renvoie les deux premières valeurs QTYSOLD et SELLERID de la table SALES, classées par la colonne QTYSOLD :

```
select top 2 qtysold, sellerid
from sales
order by qtysold desc, sellerid;

qtysold | sellerid
--------+----------
8 |      518
8 |      520
(2 rows)
```

L’exemple suivant montre la liste des groupes de catégories distincts de la table CATEGORY :

```
select distinct catgroup from category
order by 1;

catgroup
----------
Concerts
Shows
Sports
(3 rows)

--the same query, run without distinct
select catgroup from category
order by 1;

catgroup
----------
Concerts
Concerts
Concerts
Shows
Shows
Shows
Sports
Sports
Sports
Sports
Sports
(11 rows)
```

L’exemple suivant renvoie l’ensemble distinct de numéros de semaine pour décembre 2008. Sans la clause DISTINCT, l’instruction renverrait 31 lignes, soit une pour chaque jour du mois.

```
select distinct week, month, year
from date
where month='DEC' and year=2008
order by 1, 2, 3;

week | month | year
-----+-------+------
49 | DEC   | 2008
50 | DEC   | 2008
51 | DEC   | 2008
52 | DEC   | 2008
53 | DEC   | 2008
(5 rows)
```

