![]() |
Interbase - Subquery mit zurückgegebener Zeile
Hallöchen,
kann Interbase 6.5 keine SubQueries, die eine Zeile als Antwort zurückgeben?
SQL-Code:
select name, vorname, plz
from mitarbeiter where (plz, strasse) = (select plz, strasse from kunde where kundennummer = 2) |
Re: Interbase - Subquery mit zurückgegebener Zeile
Hallo r_kerber,
doch, aber anders :mrgreen: :
SQL-Code:
select name, vorname, plz
from mitarbeiter where (plz || strasse) = (select plz || strasse from kunde where kundennummer = 2) |
Re: Interbase - Subquery mit zurückgegebener Zeile
Hallo Spocky,
vielen Dank. Ist das SQL-Standard? |
Re: Interbase - Subquery mit zurückgegebener Zeile
Hallo r_kerber,
der Zusammenfügungsoperator || ist standard. Es ist ein wenig anders als deine Abfrage, weil ja hier der Feldtyp immer in "String" umgewandelt wird und dann mit dem anderen Feld zu einem String zusammengefügt wird. Wenn es möglich wäre, dass durch das Konkatenieren ein Ergebnis gleich ist, ohne dass di einzelnenFelder gleich sind, muss es noch etwas anders aussehen. Beispiel: Vorname1 = Hans Peter Nachname1 = Schmidt, Vorname 2 = Hans, Nachname2 = Peter Schmidt. OK, ist vielleicht kein sehr gutes Beispiel, aber Vorname || Nachname wäre gleich, obwohl es hier zwei unterschiedliche Einträge sind. In diesem Fall wäre es sinnvoller:
SQL-Code:
SELECT Vorname || '#' || Nachname ...
|
Re: Interbase - Subquery mit zurückgegebener Zeile
Hallo MrSpock,
ich habe beide SQL-Statements testen lassen: ![]() |
Re: Interbase - Subquery mit zurückgegebener Zeile
Hallo r_kerber,
ist eine sehr interessante Seite. Woher weißt du, dass deine Anweisung nicht mehr SQL-99 kompatibel ist? Wie sieht es mit meiner aus, ist die denn in SQL-99 noch erlaubt? Außerdem würde mich interessieren, warum meine Anweisung nur Transitional und nicht Full compatible ist!? |
Re: Interbase - Subquery mit zurückgegebener Zeile
Hallo MrSpock,
es gibt dort auch einen SQL-92-Validator. Und der sagt zu Deiner Variante Conforms to Core SQL-99 und zu meiner The following feature outside Core SQL-99 is used: F641, "Row and table constructors". |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz