Frage

für zB...

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

Hier foo vorhanden ist...eigentlich ist, was es tut ?..

War es hilfreich?

Lösung

Es ist nur ein Alias.

Aliase helfen Ihnen bei der Reduzierung der Textmenge, die Sie möglicherweise beim Schreiben von Fragen eingeben müssen.

Zum Beispiel dies:

SELECT customer.Name, customer.OpenDate FROM customer

Kann verkürzt werden auf:

SELECT c.Name, c.OpenDate FROM customer c

In Ihrem Beispiel handelt es sich um eine abgeleitete Tabelle (keine physische), die Sie jetzt tatsächlich sagen können:

Wählen Sie foo.somefield eher und wählen Sie dann * *

Andere Tipps

In diesem Beispiel, foo ist ein Tischalias. So würden Sie es verwenden:

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 (und MySQL in dieser Angelegenheit) wirft einen Fehler auf, wenn Sie keinen Tabellenalias für eine abgeleitete Tabelle (auch bekannt als Inline -Ansicht) angeben.

Es ist ein Tabellenalias/eine Kennung für die abgeleitete Abfrage

Ohne sie erhalten Sie einen Fehler, weil die abgeleitete Tabelle keine Kennung hat

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

Es wäre besser zu Fragen:Was bedeutet der expresison nach "AS"mean in SQL?

Als Jon sagte, es ist eines Pseudonyms gestattet.Sie können es verwenden, anstatt der Ausdruck vor dem ALS.

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

Hier können Sie zwei Aliase V für das Feld und D für die Tabelle.

Sie können es auch verwenden, um alias-complete SELECT-Anweisungen, wie in Ihrem Beispiel.Der alias wird dann repräsentieren die Tabelle, die aus der sub-query, und die Felder angeben, die in der Unterabfrage nach Ihrem SELECT-keyword.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top