Oracle SQL Statement

SaxnPaule

Fleet Admiral
Registriert
Okt. 2010
Beiträge
10.431
Hallo Community,

ich habe hier ein MySQL Statement welches ich auf einer Oracle SQL DB ausfuehren muss. Leider funktioniert es nicht auf Anhieb.

Ich habe festgestellt, dass ein "SELECT x AS y" nicht ohne Weiteres funktioniert. Wie ist die richtige Syntax?

Beispiel:
SELECT * FROM db AS 'result';

Funktioniert auf MySQL und wirft in OracleSQL nen Fehler:
Error: ORA-00933: SQL command not properly ended

Weiß jemand Rat?


MfG SaxnPaule
 
das kann so nicht gehen ...
was ist db für eine tabelle?
du kannst
SELECT spalte1 result, spalte2 irgendwasanderes
FROM db
[WHERE optionale klauseln]

MFG Schlummi
 
Bitte grundsätzlich zwischen Spalten und Tabellenalias unterscheiden. Der OP hat beides mit einander vermischt. Select x AS y sieht nach Spaltenalias aus und das geht sehr wohl in Oracle!

lizard99 schrieb:
Probier mal folgendes aus:
Code:
SELECT * FROM db result

In Oracle sollte man das AS - Schlüsselwort nicht verwenden.

Wie kommst du auf das schmale Brett? Ich verwende es aus Bequemlichkeit auch nicht, aber was Du schreibst ist Käse.
 
Ehm ein AS kann doch nur bei Spaltennamen angewendet werden.
Bei dem Tabellenname wird der "alias" direkt dahinter geschrieben ohne ein AS

Spaltenalias:
select x as 'y' from tabelle;

Tabellenalias:
select tb.x from tabelle tb;

Würde mich auch intressieren wieso man das bei Ora nicht verwenden sollte.
 
Zuletzt bearbeitet:
Bei Tabellenalias, den du ja beschrieben hattest, kann man AS gar nicht verwenden, also is das richtig das man es da weglassen soll ;)

Das hat aber nichts mit Ora zu tun.
 
Das Weglassen von AS brachte die Loesung.

Also:
SELECT * FROM tabellenname alias;
 
Also auf meinem früheren SQL-Test-Server weiß ich, hat das mit as bei den Tabellennamen funktioniert.
Ist also anscheinend nur bei Oracle so dass das nicht geht.

Zu dem AS das du verwendet hast:
Damit kannst du Spalten im Ergebnis "umbennen"
SELECT Spalte1 as Spalte2 FROM Tabelle
Dann haste in deiner Ergebnistabelle eine Spalte namens "Spalte2" statt "Spalte1".
Also für deinen Fall brauchste das nicht.

Nochmal zum AS bei Tabellenname: Wer das einsetzt, der bekommt das mit oder ohne AS schon hin. Einziges Einsatzgebiet wo es ja wirklich benötigt wird wäre ein Selfjoin (zumindest das einzige was mir jetzt einfällt).
Bei allem anderen versucht man das Statement ja nur mit einem AS zu verkürzen wenn mans hinten bei den Tabelle nimmt.
 
Zurück
Oben