Vergleichen mittels IN-Klauseln und NOT IN-Klauseln
Vergleiche mit den Schlüsselworten IN und NOT IN ermöglichen in der One Identity Manager Abfragesprache den Vergleich einer Spalte mit einer Menge von Werten.
Die Werte können angegeben werden
-
in Form einer Werteliste
-
als mehrwertige Zeichenkette, getrennt durch ein ASCII-7-Zeichen
-
als Parameter, der eine durch ein ASCII-7-Zeichen getrennte mehrwertige Zeichenkette enthält
Wertelisten
WHERE <Column> IN ( <Value>, <Value>, ...)
WHERE <Column> NOT IN ( <Value>, <Value>, ...)
Alle Werte müssen vom gleichen Typ sein und müssen in den Typ der Spalte konvertierbar sein.
Beispiele für Wertlisten
WHERE StringColumn IN ('Value 1', 'Value 2', 'Value 3')
WHERE StringColumn NOT IN ('Value 1', 'Value 2', 'Value 3')
Mehrwertige Zeichenkette
WHERE <Column> IN 'Separated string value'
WHERE <Column> NOT IN 'Separated string value'
Beispiel für mehrwertige Zeichenketten
WHERE Lastname IN 'Harris Basset Bloggs'
Parameter
Mehrwertigen Zeichenketten können über Parameter an Abfragen übergeben werden.
WHERE <Column> IN @Parameter
Beispiel für Parameter
WHERE Lastname IN @Lastnames
Die MVP-Syntax kann ebenfalls verwendet werden. Die normale IN-Klausel-Syntax sollte in diesem Fall bevorzugt werden. Weitere Informationen finden Sie unter Zeichenkettenwerte.
Vergleichen von Datumsdifferenzen
Ein Spezialfall von Spaltenvergleichen in der One Identity Manager Abfragesprache sind die Vergleiche von Datumsdifferenzen. Diese vergleichen den Wert einer Spalte mit einem Zeitbereich, der auf der aktuellen Uhrzeit basiert.
WHERE <Column> <Operator> DATE <Integer> <Unit> AGO
Jahre |
YEARS YEAR Y |
Monate |
MONTHS MONTH M |
Wochen |
WEEKS WEEK |
Tage |
DAYS DAY D |
Stunden |
HOURS HOUR H |
Minuten |
MINUTES MINUTE MIN |
Sekunden |
SECONDS SECOND S |
Millisekunden |
MILLISECONDS MILLISECOND MS |
Beispiele
WHERE XDateInserted < DATE 3 MONTHS AGO
WHERE XDateInserted > DATE 5 MIN AGO
Vergleichen von Datumsbereichen
Vergleiche von Datumsbereichen in der One Identity Manager Abfragesprache prüfen, ob ein Datum in einen bestimmten Datumsbereich fällt.
Syntax für benannte Bereiche
WHERE <Column> IN RANGE <Range name> [ TIMEZONE 'Timezone ID'] [CULTURE 'Language code ID']
Syntax für einen bestimmten Zeitbereich
WHERE <Column> IN RANGE <Start time> TO <End time> [TIMEZONE <Timezone ID>]
Die Startzeit von Bereichen ist eingeschlossen, die Endzeit ist ausgeschlossen.
Zulässige Bezeichnungen sind:
TODAY
YESTERDAY
THIS WEEK
THIS MONTH
THIS YEAR
LAST WEEK
LAST MONTH
LAST YEAR
LAST <integer> DAYS
LAST <integer> DAY
Die Namen der Zeitzonen müssen mit den Bezeichnern auf dem System übereinstimmen, das die Abfrage ausführt. Wenn keine Zeitzone angegeben wird, wird die UTC-Zone verwendet.
De Sprachcode gibt den Wochenanfangstag an. Sie ist nur sinnvoll, wenn einer der Wochenbereiche angegeben wird.
Beispiele
WHERE XDateInserted IN RANGE YESTERDAY
WHERE XDateInserted IN RANGE YESTERDAY
TIMEZONE 'W. Europe Standard Time'
WHERE XDateInserted IN RANGE LAST YEAR
WHERE XDateInserted IN RANGE THIS WEEK
TIMEZONE 'W. Europe Standard Time'
CULTURE 'de-DE'
WHERE XDateInserted IN RANGE 2020-01-01 TO 2020-02-01
TIMEZONE 'W. Europe Standard Time'
Verwandte Themen
Vergleichen von festen Werten
In der One Identity Manager Abfragesprache unterstützen Vergleiche zwischen festen Werten nur die Operatoren gleich (=) und nicht gleich (<>).
Beispiel
FROM Person
WHERE 1 = 0
SELECT DISPLAYS