Anmelden

View Full Version : SQL Aliasnamen in MS-Query



jjagi
05-07-06, 10:46
Hallo Forum!

Ich greife via Excel - MS-QUERY - ODBC auf unsere AS400 (V4R5) DBs zu, wie von Fuerchau im Forum ausführlich u. exzellent beschrieben.

Ich möchte in die SQL jetzt noch Aliasnamen einbauen (SELECT feldnamen aliasnamen,...), das wird aber mit der Fehlermeldung

"SQL0104 - Token 'asdf' ungültig. Gültige Token: <IDENTIFIER>"

quittiert.

Was also tun?

Vielen Dank für die Hilfe.

JonnyRico
05-07-06, 10:50
Hallo,

dann ist das korrekte Statement: Select Feldname AS Aliasname From File

Gruß

Sascha

Fuerchau
05-07-06, 10:58
Das hängt ein bisschen vom Release ab.
"as" kann entfallen (was mir manchmal Kopfweh verursacht wenn ich ein Komma bei der Aufzählung im Select vergessen habe).

jjagi
05-07-06, 11:42
:) erstmal vielen Dank für die extrem schnellen Antworten, tolles Forum!
---

AS oder nicht AS, das ist hier die Frage...

1. SELECT feldname asdf,...

2. SELECT feldname AS asdf,...

3. MS-Query Menü: Datensätze / Spalte bearbeiten / Spaltenüberschrift: asdf

produzieren alle den gleichen SQL0104 Fehler, das hatte ich schon probiert.


Ich habe beim Herumstöbern im Forum noch eine (sehr unschöne) Lösung gefunden:

MS-Query Menü: Datensätze / Spalte bearbeiten / Spaltenüberschrift: "asdf"

produziert:
SELECT feldname AS """asdf"""

Komischerweise funktioniert ein Eintippen dieses Statments NICHT?!

Ein Herumdoktern an diesem Statment führt dann auch wieder zum Fehler...

Das muß doch irgendwie gehen?!


Workaround:
bei den Eigenschaften des externen Datenbereichs / Feldnamen einschließen
abschalten (und dann händisch im Excel die Spaltennamen eingeben).

Mit Alias wär's halt viel eleganter...

Gibt's da nicht doch irgendeine Möglichkeit?

LG aus Ösiland

J. Jagersberger

Fuerchau
05-07-06, 13:12
Da du von V4R5 sprichst, kann es sein dass du nicht alle nötigen PTF's (dies nicht mehr gibt) hast.

Allerdings ist die "as"-Funktion eine Grundsätzliche und müsste laufen.

Über MS-Query gibts 2 Möglichkeiten:
In der normalen Sicht, das Feld dort einfach umbenennen.
Die Anführungszeichen kommen durch die Kleinschreibung automatisch. Selber solltest du da keine angeben !!!

In der SQL-Sicht ist ggf. "AS" erforderlich, da MS-Query eine Analyse durchführt um ggf. die Assistenten-Sicht wieder herzustellen.
In Anführungszeichen (Achtung: nicht Hochkomma!) kann Klein/Großschreibung sowie Sonderzeichen verwendet werden, ohne Anführungszeichen nur Buchstaben und Zahlen, die automatisch in groß geändert werden.

Schau dir den SQL noch mal an, ob da eine Verwechslung stattfindet.
Probiers mal mit einem einfachen SQL.

jjagi
05-07-06, 14:03
CA: V4R5M0 SF67276

Aliasnamen gehen in STRSQL sowohl mit als auch ohne "AS", Aliasnamen mit Leerzeichen u. Sonderzeichen zw. "" auch kein Problem.

Offenbar werden sie (mit oder ohne AS) irgendwie falsch umgesetzt.
Naja, dann halt nur Spaltennamen aus
Excel heraus.

LG J.Jagersberger