Bedingte Formatierung

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Arbeiten mit SQL >

Bedingte Formatierung

Wenn Sie SELECT-Anweisungen im SQL Editor ausführen, werden die abgerufenen Daten im Fenster "Ergebnis" (oder bei Ausführung mehrerer Abfragen in mehreren Ergebnisfenstern) angezeigt. Sie können das Aussehen der abgerufenen Daten (z.B. Farbe, Hintergrund, Schriftbreite) auf Basis benutzerdefinierter SQL-Bedingungen ändern. So können Sie z.B. bestimmte Werte im Ergebnisraster mit gelbem Hintergrund anzeigen lassen, wenn diese einen bestimmten Grenzwert übersteigen.

 

Die Abbildung unten zeigt ein Beispiel für eine bedingte Formatierung in einer SQLite-Datenbank. Sie finden dieses Beispielprojekt unter dem folgenden Pfad: \Altova\DatabaseSpy2019\DatabaseSpyExamples\Tutorial\. Ziel in diesem Beispiel ist es, die folgende bedingte Formatierung anzuwenden:

 

Datensätze, deren Anzahl (quantity) 200 übersteigt, müssen fett und mit orangem Hintergrund angezeigt werden.
Datensätze, deren Anzahl weniger als 10 beträgt, müssen kursiv und mit türkisem Hintergrund dargestellt werden.

ds_condformat_01

Bedingte Formatierung in der SQLite-Syntax

Damit bedingte Formatierung unterstützt wird, muss die SQL-Anweisung, wie oben gezeigt, eine Alias-Spalte enthalten, die konventionsgemäß den Namen DbSpyRowSettings haben muss. DatabaseSpy verarbeitet diese Spalte dadurch als Anweisung für die bedingte Formatierung. Beachten Sie, dass die Alias-Spalte aus einem "CASE"-Konstrukt besteht. Die WHEN-Verzweigung ist der SQL-Ausdruck, in dem Sie die zu überprüfende Bedingung in der entsprechenden Datenbankgrammatik angeben. Die THEN-Verzweigung ist ein String, der Formatierungsstile wie z.B. Schriftbreite oder Hintergrundfarbe definiert. Dieser String muss in der datenbankspezifischen Grammatik in Anführungszeichen gesetzt werden, damit er für die Datenbank wie ein String aussieht.

 

Die SQL-Syntax, die eine Alias-Spalte definiert, hängt vom Datenbanktyp ab. Nähere Informationen dazu finden Sie in der Dokumentation des jeweiligen Datenbankanbieters.

 

Es können die folgenden Stile verwendet werden:

 

Stil

Anmerkungen

Beispiel

Textstile

Text kann fett, kursiv oder unterstrichen formatiert werden.

font:bold

font:italic

font:underline

Textfarben

Die Textfarbe kann als hexadezimaler Wert (ohne Beachtung der Groß- und Kleinschreibung) oder als benannte Farbe ausgedrückt werden. Eine Referenz zu allen verfügbaren benannten Farben finden Sie unter https://www.w3.org/TR/2003/REC-SVG11-20030114/types.html, Abschnitt 4.2.

color: yellow

color: #FFFF00

Hintergrundfarben

Die Hintergrundfarben können dieselben Werte wie Textfarben haben.

background-color: gold

background-color: #FFD700

 

Anmerkungen:

 

Sie können mehrere durch Semikola getrennte Stile verwenden, z.B.: background-color:gold; font: bold; color: blue;. Leerzeichen zwischen den Stilen sind nicht relevant.
Wenn die von Ihnen eingegebenen Stile nicht erkannt werden, ignoriert DatabaseSpy sie, ohne Fehler oder Warnungen anzuzeigen.
Die Spalte DbSpyRowSettings kann an jeder beliebigen Stelle in der Spaltenliste vorkommen.
Die Groß- und Kleinschreibung der Spalte DbSpyRowSettings bzw. der Stile spielt keine Rolle.
Wenn eine bedingt formatierte Zelle, Spalte oder Zeile den Fokus hat (ausgewählt ist), hat die Hintergrundfarbe keine Auswirkung. Es werden dann nur Textfarbe und Schriftart angewendet.
Es empfiehlt sich für eine bessere Anzeige eventuell in den Optionen für die Ergebnisansicht das Kontrollkästchen Raster in unterschiedlichen Farben anzeigen zu deaktivieren.

 

Bedingte Formatierung in verschiedenen Datenbankarten

Im Folgenden sehen Sie einige datenbankspezifische Beispiele für SQL-Anweisungen, in denen bedingte Formatierung zum Einsatz kommt. Beachten Sie, dass hier nur einige der Methoden gezeigt werden, mit denen eine bedingte Formatierung angewendet werden kann. Wenn dies von der Datenbank unterstützt wird, können dieselben Ergebnisse auch auf komplexere Arten, z.B. mittels Unterabfragen, gespeicherten Prozeduren, usw. erzielt werden.

 

Datenbankart

Beispiel

Access

Verwenden Sie die SWITCH-Funktion, siehe https://support.office.com/en-us/article/Switch-Function-D750C10D-0C8E-444C-9E63-F47504F9E379

 

SELECT [id],
      [name],
      [quantity],
      SWITCH ([quantity] > 200, 'color:blue') AS [DbSpyRowSettings]
FROM   [products];

 

Verwenden Sie alternativ dazu die IF-Funktion, siehe https://support.office.com/en-us/article/IIf-Function-32436ECF-C629-48A3-9900-647539C764E3

 

SELECT [id],
      [name],
      [quantity],
      IIF ([quantity] > 200, 'color:blue', '') AS [DbSpyRowSettings]
FROM   [products];

IBM DB2

IBM DB2 for i

Oracle

PostgreSQL

Progress OpenEdge

SQLite

Sybase

Teradata

SELECT "id",
      "name",
      "quantity",
      CASE WHEN "quantity" > 200 THEN 'color:blue;' END AS "DbSpyRowSettings"
FROM   "products";

IBM Informix

SELECT id,
      name,
      quantity,
      CASE WHEN quantity > 200 THEN 'color:blue;' END AS DbSpyRowSettings
FROM   products;

MariaDB

MySQL

SELECT `id`,
      `name`,
      `quantity`,
    CASE WHEN `quantity` > 200 THEN 'color:blue;' END AS `DbSpyRowSettings`
FROM   `products`;

SQL Server

SELECT [ProductID],
      [Name],
      [Quantity],
[DbSpyRowSettings] = CASE WHEN [Quantity] > 200 THEN 'color:blue;' END
FROM   [Products];


© 2019 Altova GmbH