Alias für den Tabellennamen im SQL-insert-Anweisung

Ist es möglich, geben Sie einen Aliasnamen für die Tabelle bin ich zum einfügen von Werten in?

Möchte ich angeben, eine Bedingung innerhalb einer geschachtelten Abfrage und der Tabelle ist zu ausführlich...

Etwas wie drehen diese:

INSERT INTO my_table_with_a_very_long_name (col_a, col_b, col_c)
SELECT foo, bar, baz
FROM other_table
WHERE
  other_table.some_value > 
  (SELECT max(other_value) FROM my_table_with_a_very_long_name);

in diesem:

INSERT INTO my_table_with_a_very_long_name AS t (col_a, col_b, col_c)
SELECT foo, bar, baz
FROM other_table
WHERE
  other_table.some_value > (SELECT max(other_value) FROM t);

(offensichtlich mein Fall ist länger und beinhaltet ein paar Referenzen mehr)

  • Nein. Aber warum wollen Sie es tun? Nur ästhetik?
  • Posten Sie Ihre ursprüngliche Abfrage. Gibt es wahrscheinlich Möglichkeiten, um es zu vereinfachen. Abstraktion ist nicht sinnvoll für diesen Fall. Ein alias auf die Tabelle EINFÜGEN selbst wäre sinnlos, da er nicht verwiesen werden. Aber die gleiche Tabelle kann auf die in der SELECT-Anweisung und einen alias gibt.
  • In der Tat war es eine dynamische Abfrage, also wollte ich ersetzen Sie den Namen der Tabelle nur einmal in der überschrift und Verweis der rest von den alias.
  • Aaron Bertrand verwendet diese Analogie einmal... und ich dachte, es war eine perfekte Analogie, die ich gestohlen hat. Wenn jemand fragt Sie, wie Sie fahren können und Ihre Kuh zu arbeiten... die erste Frage sollte nicht sein "wie?"... aber "warum?" Und auch, KEINE ist eine gültige Antwort. 😉 Meine Antwort war nicht dazu gedacht, eine kritisch.. ich habe nur gefragt die OP zu denken, warum will er dies tun in den ersten Platz. Meine Entschuldigung, wenn das unhöflich Klang.
InformationsquelleAutor fortran | 2012-02-01
Schreibe einen Kommentar