CONCAT

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

ClaLu
Beiträge: 2
Registriert: Do, 12.06.2014 09:07

CONCAT

Beitrag von ClaLu »

Hi,
Es geht um eine Abfrage. Es gibt das Feld "FEST1" mit der Festnetz-Telefonnummer und das Feld "MOBIL1" mit der Mobiltelefonnummer.
Diese möchte ich in einem neuen Feld zusammenfassen. Probiert habe ich:
CONCAT( "FEST1", "MOBIL1" ) AS "Telefon"
und
"FEST1" || "MOBIL1" AS "Telefon"
Im Prinzip geht es mit beiden.
Das Problem:
Ich bekomme nur dann ein Ergebnis in der Spalte "Telefon" angezeigt, wenn beide Ausgangsfelder gefüllt sind. Wenn nur das Feld "FEST1" gefüllt ist, bleibt die Spalte "Telefon" leer.
Die Datenquelle ist eine ODBC-Datenquelle auf eine IBM-AS400-Datenbank.
Hat jemand eine Idee?
Vielen Dank + Gruss, ClaLu
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: CONCAT

Beitrag von pmoegenb »

Schau Dir die Syntax von CASE WHEN für DB400 an.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
acco
***
Beiträge: 52
Registriert: So, 04.05.2014 19:54

Re: CONCAT

Beitrag von acco »

Hallo ClaLu,

in Base bei eingebetteter Datenbank funktioniert es so:

Code: Alles auswählen

SELECT CONCAT( ifnull( "Fest1", 'keinFN' ), ifnull( "Mobil1", 'keinMobil' ) ) FROM "Tab_Tel"
oder so

Code: Alles auswählen

SELECT ifnull( "Fest1", 'keinFN' ) || ' ' || ifnull( "Mobil1", 'keinMobil' ) FROM "Tab_Tel"
wobei Du die ifnull-Bedingung frei formulieren kannst, es muß also nicht "keinFN" heißen, zwei Hochkommata geht beispielsweise auch.
Statt "Tab_Tel" nimm Deinen Tabellennamen.

Ob das bei der IBM AS 400 so klappt, weiß ich nicht, wirst Du aber rausfinden.

Gruß

acco
openSUSE 13.1, LibreOffice 4.3.2.2
ClaLu
Beiträge: 2
Registriert: Do, 12.06.2014 09:07

Re: CONCAT

Beitrag von ClaLu »

Hi
Ganz lieben Dank für die schnellen Antworten.
Mit ifnull habe ich es noch nicht probiert, aber mit CASE habe ich es nach einigem Üben hinbekommen.
Ich werde es später auch noch mit ifnull probieren, habe aber noch eine Frage:
SQL ist mir nicht sehr vertraut - gilt ifnull sowohl bei numerischen wie auch bei character-Felder und bedeutet es sowohl im einen wie auch im anderen Fall eine Abfrage auf "leer"?
Schöne Grüsse!
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: CONCAT

Beitrag von pmoegenb »

ClaLu hat geschrieben:SQL ist mir nicht sehr vertraut -
IBM hat doch hervorragende Handbücher, die m. W. mit der AS/400, bzw. iSeries mitgeliefert werden.
ClaLu hat geschrieben: gilt ifnull sowohl bei numerischen wie auch bei character-Felder und bedeutet es sowohl im einen wie auch im anderen Fall eine Abfrage auf "leer"?
So ist es. Wenn Du z. B. Datensätze, die ein einer Spalte leere Inhalte aufweisen, ausschließen möchtest, lautet die Syntax:
SELECT *
FROM Tabelle1
WHERE Feld1 Is Null
Dokumentationen für Standard-SQL findest Du z. B. unter:

http://www.sql-und-xml.de/sql-tutorial/
http://sql.1keydata.com/de/

Darüber hinaus hat jeder Datenbank-Hersteller seine eigenen Schmankerl.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Antworten