![]() |
SQL: Concat in WHERE-Klausel?
Hallo zusammen,
habe folgendes Probleme: Ich möchte via SQL aus einer Tabelle mit Adressen die eMail-Adressen raussuchen. In der Tabelle gibt es u.a. folgende Felder: - eMail1 - eMail2 - Vorname - Name Im Vorfeld liegt mit ein Name in Form von "Vorname Name" vor, zu dem die entsprechenden eMail-Adressen aus der Tabelle herausgesucht werden müssen. Leider funktioniert folgender Code irgendwie nicht:
Delphi-Quellcode:
Hat jemand ne Idee?
'SELECT EMail1, EMail2 FROM Adressen WHERE CONCAT(Vorname,'+QuotedStr(' ')+',Name) = '+QuotedStr(Person.AsString);
Im Forum seht zwar ne Menge zu Concat ... hat aber alles irgenwie nicht geholfen ... Vielen Dank vorab! Christian |
Re: SQL: Concat in WHERE-Klausel?
So geht das :
SQL-Code:
Wie üblich dann eben Dataset anlegen und auf Test zugreifen.
select nr||namefrom Adresse as test
|
Re: SQL: Concat in WHERE-Klausel?
Also zwei Abfragen nacheinander?
Oder kann man das auch in einer verpacken? |
Re: SQL: Concat in WHERE-Klausel?
Das sind keine zwei Anweisungen, die || sind ein einfaches CONCAT.
Wobei das wohl er so aussehen sollte...
SQL-Code:
Welche Datenbank benutzt du eigentlich?
SELECT nr||namefrom AS test
FROM adresse Zeichenketten miteinander verbinden... MySQL: CONCAT MSSQL: + Firebird: || |
Re: SQL: Concat in WHERE-Klausel?
Hallo,
welcher Operator für die string concatenation verwendet werden kann, ist vom RDBMS abhängig. Die Funktion CONCAT() deutet für mich auf MySQL hin und ist dann syntaktisch korrekt aufgebaut. Was geht denn damit "irgendwie nicht"? Sind die Felder Vorname und Name mit NOT NULL definiert worden? Wenn nicht müssen Vorkehrungen getroffen werden, damit das Verkettungsergebnis nicht NULL wird. Gute Nacht |
Re: SQL: Concat in WHERE-Klausel?
Funktioniert:
Delphi-Quellcode:
Danke!
'SELECT vorname|| '+QuotedStr(' ')+ ' || name, eMail1, eMail2
FROM Adressen WHERE ((eMail1 is NOT NULL) or (eMail2 is NOT NULL)) and ((vorname|| '+QuotedStr(' ')+ ' || name) = '+QuotedStr(Person.AsString)+')' |
Re: SQL: Concat in WHERE-Klausel?
Ich würde das ganze etwas übersichtlicher gestalten...
Delphi-Quellcode:
Format(
'SELECT vorname||'' ''||name, eMail1, eMail2 FROM adressen WHERE (eMail1 IS NOT NULL OR eMail2 IS NOT NULL) AND vorname||'' ''||name = %s', [QuotedStr(Person.AsString)] ); |
DP-Maintenance
Dieses Thema wurde von "Jelly" von "Object-Pascal / Delphi-Language" nach "Datenbanken" verschoben.
Hat ja wohl was eindeutig mit Datenbanken zu tun |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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