![]() |
MSSQL - View mit verketteten Feldern
Hallo zusammen,
ich finde keine solide Lösung für eine SQL Abfrage mit verketteten Feldern. Erstmal ein paar Details: Ich habe eine Datenkank "KontaktDB" auf einem MSSQL-Server (MSDE 2000 SP3). In der DB gibe es eine Tabelle "Adressen" die wie folgt strukturiert ist: ID UniqueIdentifier NOT NULL Default newid() Name nvarchar(30) vorname nvarchar(30) Strasse nvarchar(30) PLZ nvarchar(5) Ort nvarchar(30) Telefon nvarchar(30) Email nvarchar(30) Ich muss nun eine View basteln, die mit die Adressdaten formattiert in einer einzigen Spalte ausgibt. (etwa so) Vorname Name Strasse PLZ ORT Tel: Telefon Email: Email Derzeit verkette ich die Felder in der Abfrage mit "+" und die Zeilenumbrüche mache ich mit +CHAR(13)+CHAR(10) Die fertige Abfrage sie so aus:
SQL-Code:
Generell funktioniert das Ganze, nur habe ich ein Problem, wenn eines der Felder NULL ist (z.B. keine Telefonnummer eingetragen).
SELECT VORNAME+' '+NAME+CHAR(13)+CHAR(10)+
STRASSE+CHAR(13)+CHAR(10)+ PLZ+' '+ORT+CHAR(13)+CHAR(10)+ 'Tel: '+TELEFON+CHAR(13)+CHAR(10)+ 'Email: '+EMAIL AS Kontakt FROM Adressen Dann wird automatisch der komplette verkettete Wert "Kontakt" = NULL Da die Datenbank aus einer fremden Anwendung heraus gefüllt wird, könnte ich nur verhindern das keine NULL Werte in die Tabelle geschrieben werden, indem ich Defaults setze. Da es sich dabei um eine fremde DB handelt möchte ich mir Änderungen an den bestehenden Tabellenstrukturen jedoch als letzte Möglichkeit offen lassen. Gibt es eine Möglichkeit die Abfrage so zu gestalten, das die Verkettung nicht als NULL ausgegeben wird eines der Felder NULL ist ? Wenn ja, dann noch einen Schritt weiter ... Angenommen "TELEFON" ist NULL ... kann man das 'Tel: ' und den Zeilenumbruch unterdrücken wenn in dem jeweiligen Datensatz keine Telefonnummer vorhanden ist ? Danke, Jens |
Re: MSSQL - View mit verketteten Feldern
Schau dir mal die Funktionen CAST, CONVERT und CASE in der Transact-SQL-Hilfe an.
Diese sollten dein Problem lösen. |
Re: MSSQL - View mit verketteten Feldern
Cast und Convert geben auch NULL zurück, aber Case ist perfekt.
Danke für den Tip... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 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-2025 by Thomas Breitkreuz