Pregunta

por ejemplo ...

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

Aquí foo ¿Está presente ... en realidad lo que hace?

¿Fue útil?

Solución

Es solo un alias.

Los alias lo ayudan a reducir la cantidad de texto que puede tener que escribir al escribir consultas.

Por ejemplo esto:

SELECT customer.Name, customer.OpenDate FROM customer

Se puede acortar a:

SELECT c.Name, c.OpenDate FROM customer c

En su ejemplo, es una tabla derivada (no física) que ahora puede decir:

Seleccione foo.somefield en lugar de seleccionar *

Otros consejos

En este ejemplo, foo es un alias de tabla. Así es como lo usarías:

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 (y MySQL para el caso) arrojará un error si no especifica un alias de tabla para una tabla derivada (también conocida como vista en línea).

Es un alias/identificador de tabla para la consulta derivada

Sin él, recibirá un error porque la tabla derivada no tiene identificador

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

Sería mejor preguntar: ¿Qué hace el Expresison "después?"AS"¿En general en SQL?

Como dijo Jon, es un alias. Puede usarlo en lugar de la expresión antes del AS.

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

Aquí puede ver dos alias V para el campo y D para la mesa.

También puedes usarlo para alias completas SELECT-miros como en su ejemplo. El alias representará la tabla resultante de la subcontrol y tendrá los campos específicos en la subconsulta después de su SELECT-palabra clave.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top