Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zwei Felder als 1 Feld darsellen. geht das? (https://www.delphipraxis.net/82322-zwei-felder-als-1-feld-darsellen-geht-das.html)

Karstadt 11. Dez 2006 10:55

Datenbank: mysql • Version: 4.1 • Zugriff über: Mydac

Zwei Felder als 1 Feld darsellen. geht das?
 
Delphi-Quellcode:
 Select Firma + Firma 2 Firmainfo from Kontakte
Geht das? bei mir kommt nich der gewünschter ergebnis raus

Jürgen Thomas 11. Dez 2006 10:59

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Die genaue Lösung hängt vom SQL-Dialekt ab; also brauchst Du MySql-Antworten. Aber vielleicht entspricht dies auch der Interbase/Firebird-Variante:

1. Zwei Felder werden nicht mit +, sondern mit || verbunden.
2. Das verknüpfte Feld kann einen neuen Namen erhalten.
Also:
SQL-Code:
Select Firma || Firma2 AS Firmainfo from Kontakte
Vielleicht konnte ich helfen. Jürgen

uwewo 11. Dez 2006 11:01

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Ja klar!

SQL-Code:
Select Concat(Firma,' ',Firma2) AS Firmainfo from Kontakte
Uwe

Karstadt 11. Dez 2006 11:03

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Kommt das gleiche raus.

Eine Spalte mir leeren Datensätzen (obwhol in Firma definitiv was drin stehen soll) und in ersten Datensatz steht die "0" Rest wie gesagt ist leer.

Karstadt 11. Dez 2006 11:04

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Zitat:

Zitat von uwewo
Ja klar!

SQL-Code:
Select Concat(Firma,' ',Firma2) AS Firmainfo from Kontakte
Uwe

Nun sehe ich das der erster Datensatz eine richtigen wert enthält die restlichen Datensätze sind leer.

Habt ich das auch? (bei eueren Tabellen?)

oschulz 11. Dez 2006 11:07

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
SQL-Code:
select Firma||' '||Firma2 Firmainfo from Kontakte
funktioniert, zumindest unter Oracle


Zitat:

Zitat von Karstadt
Nun sehe ich das der erster Datensatz eine richtigen wert enthält die restlichen Datensätze sind leer.

und du hast auch schon mehrere Datensätze drin oder?

Jürgen Thomas 11. Dez 2006 11:26

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Mir fällt ein weiteres Problem auf: Wenn eines der Felder NULL ist, geht das Verbinden möglicherweise ins Leere. Auch hierfür ist MySQL zu prüfen. Jürgen

PS. Natürlich hatte ich beim Verbinden das Leerzeichen vergessen. Sorry!

Karstadt 11. Dez 2006 11:37

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Zitat:

Zitat von oschulz
SQL-Code:
select Firma||' '||Firma2 Firmainfo from Kontakte
funktioniert, zumindest unter Oracle


Zitat:

Zitat von Karstadt
Nun sehe ich das der erster Datensatz eine richtigen wert enthält die restlichen Datensätze sind leer.

und du hast auch schon mehrere Datensätze drin oder?

Ja. Ca 100. (DBGRID Zeigt mir leere Datensätze an) Außer einen

Karstadt 11. Dez 2006 11:38

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Zitat:

Zitat von Jürgen Thomas
Mir fällt ein weiteres Problem auf: Wenn eines der Felder NULL ist, geht das Verbinden möglicherweise ins Leere. Auch hierfür ist MySQL zu prüfen. Jürgen

PS. Natürlich hatte ich beim Verbinden das Leerzeichen vergessen. Sorry!

Das ist das.. aber wie kann ich das Lösen? (Prüfen IS NULL ist verständlich)...

mkinzler 11. Dez 2006 11:47

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Du kööntest IIF() verwenden

dfried 11. Dez 2006 12:06

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Zitat:

Zitat von mkinzler
Du kööntest IIF() verwenden

Ich würde eher "IFNULL" verwenden, ist genau für solche Zwecke gedacht...

mkinzler 11. Dez 2006 12:09

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Zitat:

Ich würde eher "IFNULL" verwenden, ist genau für solche Zwecke gedacht...
Wenn MySQL eine solche hat, dann natürlich

Karstadt 11. Dez 2006 12:20

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
..werde ich ausprobieren. aber ich muss alle Datensätze anzeigen (auch wenn firma_2) leer ist.. ;) probiere ich aus.. :)

Sidorion 11. Dez 2006 12:31

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
SQL-Code:
select concat(concat( decode(Feld1,null,'',Feld1),' '),decode(Feld2,null,'',Feld2)) As Feld1Feld2 from Table1
Concat und decode sollten alle datenbanken kannen, die sind nämlich standard SQL. IIf kent zumindest Oracle nicht, ich denke, das ist wiedermal so ein Microsoft-Alleingang.

mkinzler 11. Dez 2006 12:34

Re: Zwei Felder als 1 Feld darsellen. geht das?
 
Zitat:

IIf kent zumindest Oracle nicht, ich denke, das ist wiedermal so ein Microsoft-Alleingang.
Das funktioniert auf jedenfall bei PostGresql und FB


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 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