Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Spalten in MySQL "verschmolzen" ausgeben (https://www.delphipraxis.net/69723-spalten-mysql-verschmolzen-ausgeben.html)

Angel4585 19. Mai 2006 08:08

Datenbank: MySQl • Version: 5 • Zugriff über: ZEOS

Spalten in MySQL "verschmolzen" ausgeben
 
Hallo zusammen,

folgendes Problem:

ich habe eine Tabelle

SQL-Code:

CREATE TABLE IF NOT EXISTS Tabellenname(
ID INT NOT NULL AUTO_INCREMENT,
Vorname VARCHAR(40),
Nachname VARCHAR(40),
PRIMARY KEY(ID)
);
jetzt möchte ich mir die Felder "Vorname" und "Nachname" , quasi "verschmolzen" ausgeben,

also es sollte ungefähr so aussehen:

"Mustermann, Max"
"Musterfrau, Andrea"

Ich dachte da an etwas wie

SQL-Code:
SELCET ID,(Nachname+", "+ Vorname)VorNach FROM Tabellenname
gibt es soetwas für SQL?

MfG :angel:

MagicAndre1981 19. Mai 2006 08:10

Re: Spalten mit MySQL "verschmelzen"
 
Hol dir doch normal mit dem SELECT die Spalten und formatiere erst später die Ausgabe, so wie du sie willst. Das ist sinnvoller, als dass, was du willst.

drschubi 19. Mai 2006 08:30

Re: Spalten in MySQL "verschmolzen" ausgeben
 
Hi Martin,

wohin sollen denn die Daten ausgegeben werden?

Gruss Ren

Angel4585 19. Mai 2006 08:33

Re: Spalten in MySQL "verschmolzen" ausgeben
 
ähm, habs schon so gemacht wie ich will, bin grad über den Befehl "CONCAT" gestolpert, das sieht jetzt so aus:

SQL-Code:
SELECT ID, (CONCAT(TRIM(Nachname), ", ", TRIM(Vorname)))VorNach FROM Tabellenname
trotzdem Danke :-D

@roter Kasten(drschubi): das "verschmolzene soll in einem DBText ausgegeben weren, aber wie gesagt, ich habs jetzt schon :-D

marabu 19. Mai 2006 09:50

Re: Spalten in MySQL "verschmolzen" ausgeben
 
Hallo Martin,

auch wenn du es schon hinbekommen hast: da du in deinem DDL Statement keine NOT NULL Klausel verwendet hast, könnte eine der beiden Spalten NULL sein:

SQL-Code:
SELECT CONCAT(nachname, IF(vorname IS NULL, '', CONCAT(', ', vorname))) AS name ...
Grüße vom marabu

Angel4585 19. Mai 2006 10:02

Re: Spalten in MySQL "verschmolzen" ausgeben
 
Jupp, hab ich eben gemerkt, meins sieht jetzt so aus:

SQL-Code:
SELECT ID, ( CONCAT( TRIM( IFNULL(Vorname,""),", ", IFNULL(Nachname,""))))VorNach FROM Tabellenname
:-D

Edit: Das Syntaxhighlightning für SQL sollte auch mal überarbeitet werden :roll:

marabu 19. Mai 2006 10:06

Re: Spalten in MySQL "verschmolzen" ausgeben
 
Wenn du systematisch testest, dann wirst du dein Statement sicher noch weiter verfeinern. Aber warum verwendest du nicht einfach die NOT NULL Klausel - zumindest beim Nachnamen?

marabu

Angel4585 19. Mai 2006 10:10

Re: Spalten in MySQL "verschmolzen" ausgeben
 
du meinst beim erzeugen?

Naja wenn ich das beim erzeugen angebe, kommt beim Anlegen bzw. Abspeichern die Meldung das das Feld einen Wert haben muss, was auf die Dauer ziemlich nervig ist. Also es besteht kein Zwang da etwas hineinzuschreiben
Allerdings könnte ich vielleicht den Defaultwert auf "" setzen oder so, aber ob das etwas bringt. :gruebel:

Angel4585 19. Mai 2006 10:33

Re: Spalten in MySQL "verschmolzen" ausgeben
 
So.. weiter verfeinere ich das jetzt aber nich :lol: :

SQL-Code:
SELECT ID,
CASE
WHEN (Nachname IS NOT NULL)AND(Vorname IS NOT NULL) THEN CONCAT(TRIM(Nachname), ", ", TRIM(Vorname))
WHEN Nachname IS NOT NULL THEN TRIM(Nachname)
WHEN Vorname IS NOT NULL THEN TRIM(Vorname)
ELSE "Kein Name eingetragen" END VorNach FROM Tabellenname


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz