Вопрос

Например ...

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

Здесь foo присутствует ... на самом деле то, что он делает? ..

Это было полезно?

Решение

Это просто псевдоним.

Псевдонимы помогут вам уменьшить количество текста, которое вам, возможно, придется набрать при написании запросов.

Например:

SELECT customer.Name, customer.OpenDate FROM customer

Можно сократить:

SELECT c.Name, c.OpenDate FROM customer c

В вашем примере это полученная таблица (не физическая), которая теперь вы можете сказать:

Выберите Foo.somefield, а затем выберите *

Другие советы

В этом примере, foo это псевдоним таблицы. Вот как вы его использовали:

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 (и MySQL в этом отношении) будет вынести ошибку, если вы не указате псевдоним таблицы для полученной таблицы (он же встроенный вид).

Это псевдоним/идентификатор таблицы для полученного запроса

Без этого вы получите ошибку, потому что в полученной таблице нет идентификатора

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

Было бы лучше спросить: что происходит после "AS"Значит в SQL?

Как сказал Джон, это псевдоним. Вы можете использовать его вместо выражения до AS.

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

Здесь вы можете увидеть два псевдонимы V для поля и D для таблицы.

Вы также можете использовать его в полном псевдониме SELECT-Потворение, как в вашем примере. Затем псевдоним будет представлять таблицу, возникающую в результате подзадна, и будет иметь поля, специфические в подборе после вашего SELECT-ключевое слово.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top