Kontakt  Impressum 
 
       Navigationslinks überspringen.   

Ausdrücke

Funktionen

Der Ausdrucksgenerator


Ausdrücke

Ausdrücke sind die dritte Programmieralternative (neben T-SQL und VB.NET) in den Integration Services. Bei der Bezeichnung Ausdruck vermutet man eine sehr einfache Zuweisungsmöglichkeit. Dies entspricht jedoch nicht der Realität, da der Funktionsumfang mit dem von T-SQL durchaus vergleichbar ist.
Die Ausdrucksprogrammierung ist eine einzeilige Programmierung. Die programmierte Zeile gibt einen Wert zurück, der entweder einem Ziel zugewiesen oder anderweitig ausgewertet wird. Innerhalb der Programmzeile können die zur Verfügung stehenden Funktionen mehrfach ineinander geschachtelt werden. Da es nur eine Programmierzeile gibt, ist es nicht möglich, innerhalb eines Ausdrucks Variablen zu definieren.
Zu beachten ist außerdem, dass die Länge des Gesamtausdruckes nicht die maximale Länge von 4.000 Zeichen überschreitet.

Verwendung von Ausdrücken

Ausdrücke können nur dort verwendet werden, wo sie ausdrücklich erlaubt und vorgesehen sind. Diese Einschränkung ist notwendig, weil Ausdrücke ausgewertet werden müssen. Zum Zeitpunkt der Ausführung muss der Ausdruckstext an einen Ausdrucksauswerter übergeben werden. Das Ergebnis der Ausdrucksauswertung wird für die weitere Verarbeitung zur Verfügung gestellt. Die Ausdrucksauswertung kann sehr anschaulich bei der Ausdruckszuordnung zu einer Variablen verfolgt werden. Siehe hierzu den Abschnitt Ausdrücke als Variablenwert.
Typischen Anwendungen für Ausdrücke sind:

Element Ausdrucksverwendung
Eigenschaften Festlegung von Eigenschaften
Variablen Wertzuweisung von Variablen
Komponente bedingtes Teilen Bedingung für bedingtes Teilen
Komponente abgeleitetes Spalte Abgeleitete Spalte Ergebnis eines Ausdruckes
For-Schleifencontainer Dynamische Programmsteuerung eines For-Schleifencontainers
Workflow Rangfolgeneinschränkung
Tabelle 1: Anwendungen von Ausdrücken

Einfache Ausdrucksbeispiele:
Ausdruck Erläuterung
511 Die Zahl 511 wird als Integerwert zurückgegeben
511 + 20 Die Zahl 531 wird als Integerwert zurückgegeben
"Test" Der Text Test wird als String zurückgegeben
GETDATE() Das aktuelle Datum wird als Datentyp Date zurückgegeben
@Var Der Wert der Variable Var wird zurückgegeben. Der zurückgegebene Datentyp ist identisch mit dem der Variable Var
[Spalte 0] > [Spalte 1] Vergleicht Spalte0 mit Spalte1. Es wird True oder False als Datentyp Boolean zurückgegeben.
[Spalte 1] * 10 Der Wert der Spalte1 wird mit 10 multipliziert.
Tabelle 2: Ausdrucksbeispiele

Syntax

Die Syntax der Ausdrucksprogrammierung ist eine Mischung aus C und T-SQL. Die Komplexität ist überschaubar und es gibt nur wenige Besonderheiten, die es zu beachten gilt.
Ein Ausdruck besteht immer aus einer Programmzeile. Jeder Ausdruck gibt genau einen Wert zurück.
Die Ausdrucksprogrammierung ist mit der Zellenzuweisung in Microsoft Excel vergleichbar. Auch in Excel kann auf andere Zellen und Variablen zugegriffen werden und es stehen umfangreiche Funktionen zur Verfügung. Spalten- und Variablennamen
In Ausdrücken können Spalten des Datenflusses und Variable verwendet werden. Variable werden durch das @-Präfix gekennzeichnet. Die Variable "Anzahl" wird in einem Ausdruck mit @Anzahl angesprochen. Eine Variable kann durch die zusätzliche Nennung des Namespace qualifiziert werden. Qualifiziert wird die Variable "Anzahl" im Namespace Benutzer so angesprochen: @[Benutzer::Anzahl]. Die beiden aufeinander folgenden Doppelpunkte werden als Namespaceauflösungsoperator bezeichnet. Der qualifizierte Variablenname muss immer von eckigen Klammern eingeschlossen sein, da die beiden Doppelpunkte als Sonderzeichen gelten.
Spaltennamen lassen sich in Ausdrücken nur in Datenflusskomponenten verwenden. Der jeweilige Editor zeigt auf Basis der Metadaten die zur Verfügung stehenden Spalten an und unterstützt die Ausdrucksprogrammierung. Spaltennamen werden ohne weitere Kennung in einem Ausdruck verwendet. Enthält der Spaltenname Sonderzeichen, ist der Spaltenname von eckigen Klammern zu umgeben. Automatisch generierte Spalten enthalten vielfach Leerzeichen, die ebenfalls als Sonderzeichen gelten.
Das erste Zeichen eines Namens muss ein Buchstabe gemäß Unicode-Standard 2.0 oder ein Unterstrich sein. Die nachfolgende Zeichen können Buchstaben oder Zahlen gemäß Unicode-Standard 2.0 sein oder eines der folgender Zeichen: _ @ $ #
Namen, die dieser Konvention nicht entsprechen, müssen von eckigen Klammen eingeschlossen werden.
Eckige Klammern als Namensbestandteil sind in Ausdrücken nicht erlaubt.

Operatoren

Bei der Auswertung eines Ausdrucks wird die Punkt vor Strichregel beachtet. Die weitere Auswertungsreihenfolge ist durch Klammersetzung festzulegen. Die wichtigsten Operatoren finden Sie in Tabelle 14.5. Bitte beachten Sie, dass für die Addition von numerischen Ausdrücken der gleiche Operand verwendet wird, wie für das Verketten von Texten. Welche Operation ausgeführt wird, entscheidet der Datentyp des angesprochenen Ausdruckes.
Operator Beschreibung
() (Klammern) Identifiziert die Auswertungsreihenfolge von Ausdrücken
+ (Addieren) Addiert zwei numerische Ausdrücke
+ (Verketten) Verkettet zwei Ausdrücke
- (Subtrahieren) Subtrahiert den zweiten numerischen Ausdruck vom ersten
- (Negation) Negiert einen numerischen Ausdruck
* (Multiplikation) Multipliziert zwei numerische Ausdrücke
/ (Division) Dividiert den ersten numerischen Ausdruck durch den zweiten numerischen Ausdruck
% (Modulo) Stellt den ganzzahligen Rest einer Division des ersten numerischen Ausdrucks durch den zweiten bereit
|| (Logisches OR) Führt eine logische OR-Operation aus
&& (Logisches AND) Führt eine logische AND-Operation aus
! (Logisches NOT) Negiert einen booleschen Operanden
== (Gleich) Führt einen Vergleich aus, um zu ermitteln, ob zwei Ausdrücke gleich sind
!= (Ungleich) Führt einen Vergleich aus, um zu ermitteln, ob zwei Ausdrücke ungleich sind
> (Größer als) Führt einen Vergleich aus, um zu ermitteln, ob der erste Ausdruck größer ist als der zweite
? : (Bedingt) Gibt einen von zwei Ausdrücken basierend auf der Auswertung eines booleschen Ausdrucks zurück
Tabelle 3: Operatoren und ihre Funktion

Die Funktionsweise der wichtigsten Operatoren wird im folgenden erläutert.

Konvertierungsoperator CAST

Es gibt zwei Arten von Datenkonvertierungen in Ausdrücken:
  • Implizierte Konvertierung
  • Explizite Konvertierung
Die implizierte Konvertierung wird vom Ausdrucksauswerter automatisch durchgeführt und konvertiert bei Bedarf die verwendeten Datentypen. So wird bei einem Vergleich von einer Smallint-Variable mit einer Int-Variablen, die Smallint-Variable für den Vergleich in eine Int-Variable konvertiert. Eine implizierte Konvertierung kann nur durchgeführt werden, wenn die Datentypen vergleichbar sind und bei der Konvertierung keine Daten verloren gehen. In den Books Online finden Sie ein Diagramm über die möglichen implizierten Konvertierungen.
Bei jeder Operation zwischen 2 Teilausdrücken werden die Datentypen verglichen und bei Bedarf impliziert konvertiert. Ist es dem Ausdrucksauswerter nicht möglich, ohne Datenverlust Datentypen zu konvertieren, muss die Konvertierung explizit durchgeführt werden.
Für die explizite Konvertierung wird der Konvertierungsoperator CAST verwendet. Der Konvertierungsoperator CAST hat eine ganz besondere Syntax. Er wird dem zu konvertierenden Teilausdruck vorangestellt: "(SSIS-Datentyp) Ausdruck".
Beispiel: "(DT_I4) 7.6"
Hier wird die Zahl 7,6 in eine ganze Zahl konvertiert. Bei der Konvertierung wird automatisch gerundet. Das Ergebnis ist also 8. Achten Sie darauf, dass das Dezimaltrennzeichen auch in der deutschen Version der Punkt ist. Der Name des Operators CAST wird nicht mit aufgeführt.
Bei bestimmten Umwandlungen sind für eine korrekte Konvertierung zusätzliche Parameter erforderlich:

Datentyp Parameter Beispiel
DT_STR Zeichenanzahl , Codepage (DT_STR,30,1252) wandelt 30 Zeichen, mithilfe der 1252-Codepage in den DT_STR-Datentyp um.
DT_WSTR Zeichenanzahl (DT_WSTR,20) wandelt 20 Bytepaare, oder 20 Unicode-Zeichen, in den DT_WSTR-Datentyp um.
DT_BYTES Byteanzahl (DT_BYTES,50) wandelt 50 Bytes in den DT_BYTES-Datentyp um.
DT_DECIMAL Anzahl Dezimalstellen ((DT_DECIMAL,2) wandelt einen numerischen Wert mithilfe von 2 Dezimalstellen in den DT_DECIMAL-Datentyp um.
DT_NUMERIC Genauigkeit , Anzahl Dezimalstellen (DT_NUMERIC,10,3) wandelt einen numerischen Wert mithilfe einer Genauigkeit von 10 und 3 Dezimalstellen in den DT_NUMERIC-Datentyp um.
DT_TEXT Codepage (DT_TEXT,1252) wandelt einen Wert mithilfe der 1252-Codepage in den DT_TEXT-Datentyp um.
Tabelle 4: Die erweiterte Syntax des CAST-Operators


In der aktuellen Version des Ausdrucksauswerters erscheinen teilweise unerwartete Fehlermeldungen bei der Verwendung des CAST-Operators. So produziert die Eingabe "(DT_Decimal,2)500" die Fehlermeldung: "Die angegebene OLE-Variante ist ungültig". Wird die Zahl um den Dezimaltrenner ergänzt, "(DT_DECIMAL,2)500.0", wird die Konvertierung fehlerfrei durchgeführt.
Dieser Fehler betrifft nur die deutsche Version und sollte mit dem 1.ServicePack behoben sein.


Weitergehende Informationen zur Umwandlungen von Datumsdatentypen finden Sie in den Books Online.

Funktionen

In der Ausdruckssprache steht eine Vielzahl von Funktionen zur Verfügung.
Es werden die folgenden Arten von Ausdruckfunktionen unterschieden:
  • Mathematische Funktionen
  • Zeichenfolgen-Funktionen
  • Datums-Funktionen
  • Null-Funktionen

Systeminformationen werden nicht per Funktion sondern über Systemvariable abgerufen.

Mathematische Funktionen

Funktion Beschreibung
ABS Gibt den absoluten, positiven Wert eines numerischen Ausdrucks zurück
EXP Gibt den Exponenten für die Basis e des angegebenen Ausdrucks zurück
CEILING Gibt die kleinste ganze Zahl zurück, die größer oder gleich einem numerischen Ausdruck ist
FLOOR Gibt die größte ganze Zahl zurück, die kleiner oder gleich einem numerischen Ausdruck ist
LN Gibt den natürlichen Logarithmus eines numerischen Ausdrucks zurück
LOG Gibt den Logarithmus eines numerischen Ausdrucks zur Basis 10 zurück
POWER Gibt das Ergebnis eines in eine Potenz erhobenen numerischen Ausdrucks zurück
POWER(numerischer Ausdruck, Potenz) ; Beispiel: Power(2,3) => 8
ROUND Gibt einen numerischen Ausdruck zurück, der auf die angegebene Länge oder Genauigkeit gerundet wurde
ROUND(numerischer Ausdruck,Länge) ; Beispiel: Round(1234.557,2) => 1234.56
SIGN Gibt das positive (+) oder negative (-) Vorzeichen oder Null (0) für einen numerischen Ausdruck zurück
SQUARE Gibt das Quadrat eines numerischen Ausdrucks zurück
SQRT Gibt die Quadratwurzel eines numerischen Ausdrucks zurück
Tabelle 5: Mathematischen Funktionen in Ausdrücken

Die meisten mathematischen Funktionen sind selbsterklärend und haben als Input nur einen Parameter. Nur die beiden Funktionen POWER und ROUND erwarten 2 Parameter.

Zeichenfolgefunktionen

Funktion Beschreibung
CODEPOINT Gibt den Unicode-Codewert des äußeren linken Zeichens eines Zeichenausdrucks zurück
FINDSTRING Gibt den einsbasierten Index für das angegebene Auftreten einer Zeichenfolge innerhalb eines Ausdrucks zurück.
FINDSTRING(Ausdruck, Suchtext, Auftreten)
Ausdruck: Ausdruck der durchsucht wird
Suchtext: Suchtext
Auftreten: Das wievielte Auftreten des Suchtextes gemeldet werden soll
Beispiel: FINDSTRING ("Server","r",1) => 3
HEX Gibt eine Zeichenfolge zurück, die den hexadezimalen Wert einer ganzen Zahl darstellt.
LEN Gibt die Anzahl von Zeichen in einem Zeichenausdruck zurück.
LOWER Gibt einen Zeichenausdruck zurück, nachdem Großbuchstaben in Kleinbuchstaben konvertiert wurden
LTRIM Gibt einen Zeichenausdruck zurück, nachdem führende Leerzeichen entfernt wurden
REPLACE Gibt einen Zeichenausdruck zurück, nachdem eine Zeichenfolge im Ausdruck durch eine andere Zeichenfolge oder durch eine leere Zeichenfolge ersetzt wurde.
REPLACE(Ausdruck, Suchtext, Ersetzungstext)
Ausdruck: Ausdruck der durchsucht und indem ersetzt wird
Suchtext: Der gesuchte Text
Ersetzungstext: Dieser Text ersetzt den Suchtext
Beispiel: REPLACE("SQL SERVER 2000","2000","2005")
Ergebnis: SQL SERVER 2005
REPLICATE Gibt einen Zeichenausdruck zurück, der mehrfach repliziert wurde
REVERSE Gibt einen Zeichenausdruck in umgekehrter Reihenfolge zurück
RIGHT Gibt den Teil einer Zeichenfolge zurück, der bei einer angegebenen Anzahl von Zeichen von rechts beginnend anfängt
RTRIM Gibt einen Zeichenausdruck zurück, nachdem nachfolgende Leerzeichen entfernt wurden
SUBSTRING Gibt einen Teil eines Zeichenausdrucks zurück.
SUBSTRING(Ausdruck, Position, Länge)
Ausdruck: Text aus dem ein Teil ausgeschnitten werden soll
Position: Position, ab der ausgeschnitten werden soll. Mit 1 beginnend
Länge: Anzahl auszuschneidender Zeichen
Beispiel: SUBSTRING("SQL SERVER",5,4)
Ergebnis: SERV
TRIM Gibt einen Zeichenausdruck zurück, nachdem führende und nachfolgende Leerzeichen entfernt wurden
UPPER Gibt einen Zeichenausdruck zurück, nachdem Kleinbuchstaben in Großbuchstaben konvertiert wurden
Tabelle 6: Zeichenfolgefunktionen in Ausdrücken

Datumsfunktionen

Funktion Beschreibung
DATEADD Gibt einen neuen DT_DBTIMESTAMP-Wert zurück, indem ein Datums- oder Zeitintervall einem angegebenen Datum hinzugefügt wird.
DATEDIFF Gibt die Anzahl von Datums- und Zeiteinheiten zurück, die zwischen zwei angegebenen Daten überschritten wurden.
DATEPART Gibt eine ganze Zahl zurück, die einen datepart-Wert eines Datums darstellt.
DAY Gibt eine ganze Zahl zurück, die den Tag des angegebenen Datums darstellt.
GETDATE Gibt das aktuelle Datum des Systems zurück.
GETUTCDATE Gibt das aktuelle Datum des Systems als UTC-Zeit (Universal Time Coordinate oder Greenwich Mean Time) zurück.
MONTH Gibt eine ganze Zahl zurück, die den Monat des angegebenen Datums darstellt.
YEAR Gibt eine ganze Zahl zurück, die das Jahr des angegebenen Datums darstellt.
Tabelle 7: Datumsfunktionen in Ausdrücken

Die Syntax der Datumsfunktionen ist etwas umfangreicher. Um den gegebenen Rahmen nicht zu überschreiten wird stellvertretend nur die DATEDIFF-Funktion besprochen. Die anderen Datumsfunktionen bauen auf einer ähnlichen Syntax auf. Die Einzelheiten entnehmen Sie bitte den Books Online.

DATEDIFF

Die Funktion DATEDIFF gibt die Anzahl der überschrittenen Datums- und Zeiteinheiten zwischen zwei Daten zurück.
Die Syntax lautet:
DATEDIFF(Datumseinheit, Startdatum, Enddatum)
Das Startdatum und das Enddatum müssen Datums-Datentypen sein. Liegt das Datum als Text vor, muss es explizit konvertiert werden.
Die Differenz zwischen zwei Daten kann in unterschiedlichen Datumseinheiten gemessen werden. Die gewünschte Einheit in einem Literal angegeben. Das Literal enthält die Abkürzung der gewünschten Datumseinheit.
Datumseinheit Abkürzungen Beschreibung
Year yy, yyyy Jahr
Year yy, yyyy Jahr
Quarter qq,q Quartal (1 bis 4)
Month mm, m Monat (1 bis 12)
Dayofyear dy, y Tag im Jahr (1 bis 366)
Day dd, d Tag im Monat (1 bis 31)
Week wk, ww amerikanische Kalenderwoche (1 bis 53)
Weekday dw, w Wochentag (1 bis 7) ; Sonntag ist 1.Tag der Woche
Hour hh Stunde (0 bis 23)
Minute mi, n Minute (0 bis 59)
Second Ss, s Sekunde (0 bis 59)
Millisecond ms Millisekunde (0 bis 999)
Tabelle 8: Datumseinheiten der Zeitfunktion

Beispiele:
DATEDIFF("dd", (DT_DBTIMESTAMP)"21.01.2006", (DT_DBTIMESTAMP)"15.02.2006")
Es wird die Anzahl der Differenztage zwischen dem 21.Januar.2006 und dem 15.Februar.2006 ermittelt.
Als Ergebnis werden 25 Differenztage ausgegeben.

DATEDIFF("mm", (DT_DBTIMESTAMP)"21.1.2006",GETDATE())
Es wird die Anzahl der Monate zwischen dem 21.Januar.2006 und dem aktuellen Datum ermittelt. Das Ergebnis hängt vom aktuellen Monat ab.

Nullfunktionen

Funktion Beschreibung
ISNULL Gibt abhängig davon, ob ein Ausdruck NULL ist, ein boolesches Ergebnis zurück.
NULL Gibt einen NULL-Wert eines angeforderten Datentyps zurück.
Tabelle 9: Nullfunktionen

Die ISNULL-Funktion gibt ein Ergebnis vom Datentyp DT_Bool zurück, in Abhängig davon, ob der überprüfte Ausdruck NULL ist.
Diese Funktion ist sehr gut geeignet um Null-Werte im Datenfluss abzufangen. Unter einem Null-Wert versteht man gar keinen Wert, es ist nicht die Zahl "0" gemeint. Datenbankfelder können Nullwerte enthalten. Datenbankabfragen können Nullwerte zurückgeben und auch aus anderen Datenquellen können Nullwerte entstehen. So erzeugt beispielsweise die Komponente Excel-Quelle Nullwerte, wenn der Feldinhalt einer Spalte nicht mit den automatisch generierten Metadaten übereinstimmt.

Der Ausdrucksgenerator

Der Ausdrucks-Generator vereinfacht die Eingabe von Ausdrücken. Er steht aber nicht überall zur Verfügung und kann abhängig von der Komponente unterschiedliche Ausprägungen haben.
Die Verwendung des Ausdrucksgenerators wird anhand eines Beispiels gezeigt. In einer Skripttask wird die Eigenschaft ReadWriteVariables dynamisch über eine Variable zugewiesen. Mit einem Doppelklick auf die Skripttask wird der Skriptask-Editor geöffnet. Die Eingabe von Ausdrücken erfolgt auf der untersten Seite Ausdrücke.

Abbildung 1: Eintrag der Variable "@[Benutzer::Var]"

Eine direkte Eingabe ist an dieser Stelle nicht möglich. Zuerst muss über die Erweiterungsschaltfläche ( ) der Eigenschaftsausdrucks-Editor geöffnet werden, um aus der Liste der zur Verfügung stehenden Eigenschaften die gewünschte auszuwählen:

Abbildung 2: Auswahl der Eigenschaften

Die zur Verfügung stehenden Eigenschaften variieren von Task zu Task. In unserem Beispiel wählen wir die Eigenschaft ReadWriteVariables aus.
Der Ausdruck kann im Eigenschaftsausdrucks-Editor direkt eingegeben werden. Bei der direkten Eingabe wird keine Syntaxprüfung durchgeführt und es steht auch keinerlei Eingabeunterstützung zur Verfügung.
Diese wird nur im Ausdrucks-Generator angeboten, welcher durch einen Klick auf die Erweiterungsschaltfläche geöffnet wird.

Abbildung 3: Der Ausdrucksgenerator

Der Ausdrucks-Generator unterstützt Sie bei der Auswahl von Variablen, Funktionen, Typenumwandlungen und Operatoren. In den meisten Fällen wird es aber trotz allem notwendig sein den Ausdruck manuell zu vervollständigen. Durch Klicken auf die Schaltfläche "Ausdruck auswerten" können Sie eine Testauswertung des Ausdruckes veranlassen. Bei falscher Syntax erscheint eine ausführliche Fehlermeldung.
Das Ergebnis des ausgewerteten Ausdruckes wird angezeigt. In unserm Beispiel hat die Benutzervariable "VAR" den Wert Test1. Dieser Wert wird der Eigenschaft ReadWriteVariables zugewiesen. Dies können Sie überprüfen, indem Sie im Skripttask-Editor auf die Seite Skript wechseln. Der Wert des Ausdruckes wird unter ReadWriteVariables angezeigt. Diese Eigenschaft kann in der Skripttask zwar manuell überschrieben werden, aber bei jeder Paketausführung wird der Ausdruck ausgewertet und die Eigenschaft mit dem Ausdruckswert überschrieben.

Transformations-Editor

Bei den beiden Datenflusskomponenten Bedingtes Teilen und Abgeleitete Spalte ersetzt eine Variante des Ausdrucks-Generators den ansonsten üblichen Editor. Auch wenn in der Kopfzeile Transformations-Editor steht, handelt es sich schlicht um einen erweiterten Ausdrucks-Generator. Die Erweiterungen spezifizieren lediglich die Verwendung des Ausdruckes. In der Komponente Bedingtes Teilen wird in Abhängigkeit vom Wert der Ausdrücke (Boolean - True oder False) der Datenfluss auf mehrere Pipelines geteilt.
In der Komponente Abgeleitete Spalte wird der Wert der Ausdrücke in einer neuen Spalte gespeichert. Für jede Spalte muss ein Spaltenname und einige Metadaten angegeben werden. Weitere Details zu den Komponenten entnehmen Sie bitte der Einzelbesprechung.

Ausdrücke in Variablen

Um Variable mittels eines Ausdrucks zu füllen, muss das Eigenschaftsfenster mit F4 geöffnet und die Eigenschaft EvaluateAsExpression auf True gesetzt werden. Der Ausdruck muss manuell eingegeben werde, da kein Generator zur Verfügung steht. Mit dem Verlassen der Eigenschaft Expression wird der Ausdruck ausgewertet. Die Eigenschaft Value wird mit dem Wert des Ausdruckes gefüllt. Bei fehlerhafter Syntax wird eine Fehlermeldung ausgegeben. Siehe hierzu Abschnitt Ausdrücke als Variablenwert.
Einige Besonderheiten in der Ausdrucksprogrammierung werden nachfolgenden in kurzen Beispielen erläutert:

Vergleiche

Vergleiche werden immer mit Doppelzeichen durchgeführt:
Vergleich Zeichen
direkter Vergleich ==
ungleich !=
logisches UND &&
logisches ODER ||
Tabelle 10: Vergleiche und ihre Syntax

Der folgende Ausdruck wertet den String "ABC" aus:
(SUBSTRING("ABC",1,1) == "A" || SUBSTRING("ABC",1,1) == "B") && SUBSTRING("ABC",3,1) == "C"
Geprüft wird:
  • ob der 1.Buchstabe ein "A" ist
  • oder ob der 1.Buchstabe ein "B" ist
  • und ob der 3.Buchstabe ein "C" ist
Sind die Bedingungen erfüllt wird das boolesche Ergebnis True ausgegeben

Bedingung(if)

Eine explizite If-Funktion ist in der Ausdruckssprache nicht vorhanden. Eine bedingte Ausführung wird über ein nachgestelltes Fragezeichen programmiert:
Boolescher-Ausdruck ? Ausdruck-if-true : Ausdruck-if-false Mit einem Fragezeichen hinter einem Ausdruck vom Datentyp DT_BOOL (True oder False) wird eine Bedingung definiert. Ist das Ergebnis True, wird der Ausdruck vor dem Doppelpunkt ausgeführt. Ist das Ergebnis False, wird der Ausdruck nach dem Doppelpunkt ausgeführt. Beide möglichen Ausdrücke müssen den gleichen Datentyp zurückgeben. Beispiel: Der 1.Buchstabe der Variablen "@Var" soll mit "A" verglichen werden. Ist der 1.Buchstabe ein "A" soll der Ausdruck den Text "Ergebnis ist richtig" zurückgeben, andernfalls den Text "Ergebnis ist falsch". Der Ausdruck müsste in diesem Fall lauten: (SUBSTRING(@Var,1,1) == "A") ? "Ergebnis ist richtig" : "Ergebnis ist falsch"
As a craftsman's replica watches in the Rolex brand, the Rolex Sea-made replica watches online is water-resistant to 4,000 feet, while the brand deep-deep watch is waterproof to 12,800 feet. The waterproof rating of the replica watches uk shows the extraordinary results of working with professional divers for decades uk replica watches.