![]() |
Datenbank: egal • Version: egal • Zugriff über: egal
Leezeilen in SQL-Ausgabe
Moin, moin,
möchte in einer SQL-Abfrage zwischen zwei Union Statements eine Leerzeile, also Felder ohne Werte (mit Leerstrings) einfügen. Nehmen wir eine einfache Abfrage:
SQL-Code:
/* Wert des Artikelbestandes aufgeteilt nach Artikelgrupppen */ SELECT Artikelgruppe, Sum(Artikelpreis) FROM Artikel GROUP By Artikelgruppe UNION ALL /* hier hätte ich gerne eine Zeile mit Leerwerten ohne Anzeige */ /* Wie bringe ich die Zahlenspalte dazu keine Null anzuzeigen? */ /* gesamter Wert des Artikelbestandes */ SELECT "Gesamtwert", Sum(Artikelpreis) FROM Artikel Viele Grüße // Martin |
Re: Leezeilen in SQL-Ausgabe
So sollte das funktionieren ...
SQL-Code:
/* Wert des Artikelbestandes aufgeteilt nach Artikelgrupppen */
SELECT Artikelgruppe, Sum(Artikelpreis) FROM Artikel GROUP By Artikelgruppe UNION ALL /* hier hätte ich gerne eine Zeile mit Leerwerten ohne Anzeige */ /* Wie bringe ich die Zahlenspalte dazu keine Null anzuzeigen? */ SELECT NULL AS [Artikelgruppe], NULL AS Expression1 UNION ALL /* gesamter Wert des Artikelbestandes */ SELECT "Gesamtwert", Sum(Artikelpreis) FROM Artikel Numerische Felder (FLOAT,INT usw.) kann man nicht auf '' setzen. Du hast also nur die Wahl zwischen NULL und 0. Bei DateTime verhält sich das äquivalent. Alphanumerische Felder kannst du auf '' oder NULL setzen. In einigen Fällen musst du jedoch die Feld-Datentypen für die "hinzogemogelten" Datenzeile definieren, damit diese mit den beiden datenbahafteten SELECTs übereinstimmen. Das geht bei MSSQL am besten mit CAST.
SQL-Code:
CAST(NULL AS VARCHAR(10))
CAST('' AS VARCHAR(10)) CAST(0 AS INT) ... |
Re: Leezeilen in SQL-Ausgabe
Danke Jens,
nach einigen Tests kann ich Deinen Beitrag voll bestätigen. Im Standart-SQL-Satz ist sowas einfach nicht vorgesehen. Vielleicht wird das irgendwann mal in die Richtung erweitert, dass man einer SQL-Ausgabe Informationen über den gewünschten Style mit Farbe Zahlenformat (wie bei Excel..) usw. mitgeben kann. Aber da fliest noch etwas Wasser die Leine herunter... Grüße aus Hannover // Martin |
Re: Leezeilen in SQL-Ausgabe
Hoffentlich passiert das nie, denn wieso sollte es einen SQL-Server etwas angehen, wie die Tabelle formatiert wird? Ich möchte keine Leerzeile, sondern einen Strich!
Wieso fügst du nicht einfach eine zusätzliche Spalte ein:
SQL-Code:
Der Client (dessen Aufgabe die Formatierung ist) kann dann immer noch entscheiden, ob er zwischen den unterschiedlichen tTypes eine Leerzeile einfügt, oder doch eher einen dezenten Farbwechsel, oder, um Zicke Alzaimar zufrieden zu stellen, eben einen waagerechten Strich.
Select 0 as tType, foobardata from Tabelle1
union Select 1, moreFooBarData from Tabelle2 union Select 2, BlaFaselFooBar from Tabelle3 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 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