Seite 1 von 1
CONCAT
Verfasst: Do, 12.06.2014 09:20
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
Re: CONCAT
Verfasst: Do, 12.06.2014 10:47
von pmoegenb
Schau Dir die Syntax von
CASE WHEN für DB400 an.
Re: CONCAT
Verfasst: Do, 12.06.2014 11:27
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
Re: CONCAT
Verfasst: Do, 12.06.2014 12:26
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!
Re: CONCAT
Verfasst: Do, 12.06.2014 12:40
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.