Question

pour par exemple ...

SELECT * 
  FROM ( SELECT RANK() OVER (ORDER BY stud_mark DESC) AS ranking,
                stud_id, 
                stud_name, 
                stud_mark 
           FROM tbl_student ) AS foo 
 WHERE ranking = 10

Ici foo est présent ... en fait ce qu'il fait? ..

Était-ce utile?

La solution

Il est juste un alias.

Alias ??vous aider à réduire la quantité de texte que vous pouvez avoir à taper lors de l'écriture des requêtes.

Par exemple ceci:

SELECT customer.Name, customer.OpenDate FROM customer

Peut être raccourci à:

SELECT c.Name, c.OpenDate FROM customer c

Dans votre exemple, il est une table dérivée (pas un moment physique) qui maintenant vous pouvez dire en fait:

SELECT foo.someField plutôt que SELECT *

Autres conseils

Dans cet exemple, foo est un alias de table. Voici comment utiliser cette fonctionnalité?

SELECT foo.* 
  FROM ( SELECT RANK() OVER (ORDER BY ts.stud_mark DESC) AS ranking,
                ts.stud_id, 
                ts.stud_name, 
                ts.stud_mark 
           FROM tbl_student ts) AS foo 
 WHERE foo.ranking = 10

SQL Server (et MySQL pour cette question) va lancer une erreur si vous ne spécifiez pas un alias de table pour une table (AKA vue en ligne) dérivée.

Il est un alias de table / identificateur de la requête dérivée

Sans elle, vous obtiendrez une erreur, car la table dérivée n'a pas identifiant

SELECT * FROM 
 ( SELECT RANK() OVER (ORDER BY stud_mark DESC) AS ranking, stud_id, stud_name, stud_mark FROM tbl_student )
WHERE ranking = 10

Il serait préférable de demander: Qu'est-ce que la expresison moyenne dans SQL après « AS »

Comme Jon dit, il est un alias. Vous pouvez l'utiliser au lieu de l'expression avant l'AS.

SELECT veryverylongname AS V FROM dummy_table AS D WHERE D.V = 10

Ici vous pouvez voir deux alias V pour le champ et D pour la table.

Vous pouvez également l'utiliser pour alias relevés SELECT-complets comme dans votre exemple. L'alias représentera alors la table résultant de la sous-requête, et aura les champs dans la sous-requête Précisez après votre SELECT-mot.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top