Freigeben über


Vergleichsoperatoren (Visual Database Tools)

Sie können alle Standard-SQL-Operatoren in einer Suchbedingung verwenden.

Für das Verwenden von Operatoren in Suchbedingungen gelten die folgenden Regeln:

  • Die Datentypen der im Vergleich verwendeten Daten müssen übereinstimmen. Text kann also nur mit Text verglichen werden, Zahlen nur mit Zahlen usw. Einige Datenbankmanagementsysteme ermöglichen Ihnen die Verwendung einer Funktion oder eines Schlüsselwortes (wie CAST), sodass Daten temporär in einen anderen Datentyp konvertiert werden können. Ausführliche Informationen finden Sie in der Datenbankdokumentation.

  • Wenn Sie Textdaten vergleichen, ist das Ergebnis vom derzeit verwendeten Zeichensatz abhängig. Wenn z. B. eine Tabelle mit skandinavischen Zeichen erstellt wurde, können die Suchergebnisse unterschiedlich ausfallen, je nachdem, ob der aktuelle Zeichensatz (Codepage) ein skandinavischer oder ein anderer Zeichensatz ist.

  • Wenn als Vergleichswert Null ausgegeben wird, ist das Ergebnis unbekannt. Null entspricht keinem Wert, auch nicht anderen Instanzen von Null. Wenn Sie z. B. nach einem Namen suchen, der mit dem Buchstaben "M" oder höher beginnt (name >= 'M'), und einige Zeilen keinen Wert enthalten, werden diese nicht angezeigt, unabhängig vom verwendeten Vergleichsoperator.

Die folgende Tabelle enthält die Operatoren für Suchbedingungen, die für Standard-SQL definiert sind.

Tipp

Die Informationen in diesem Thema leiten sich aus den Regeln für Standard-SQL-92 ab. Datenbanken können SQL jedoch auf unterschiedliche Art implementieren. Die hier angezeigten Richtlinien sind daher nicht in jedem Fall gültig. Informationen zur Verwendung der Operatoren in einer bestimmten Datenbank finden Sie in der Dokumentation zur entsprechenden Datenbank.

Operator

Bedeutung

Beispiel für den Kriterienbereich*

Beispiel für den SQL-Bereich

=

Gleich

= 'Smith'
SELECT fname, lname
FROM employees
WHERE lname = 'Smith'

<> !=

Ungleich

<> 'Active'
SELECT fname, lname
FROM employees
WHERE status <> 'Active'

>

Größer als

> '01 Jan 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date >
 '12/31/90'

<

Kleiner als

< 100
SELECT fname, lname
FROM employees
WHERE job_lvl < 100

>= !<

Größer oder gleich

>= 'T'
SELECT au_lname
FROM authors
WHERE au_lname >= 'T'

<= !>

Kleiner oder gleich

<= '01 Jan 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date <= 
 '01/01/95'

BETWEEN expr1 AND expr2

Testet den Wertebereich.

BETWEEN 
'01 Jan 1995' 
AND 
'31 Dec 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date 
 BETWEEN '12/31/90'
 AND '12/31/91'

IS [NOT] NULL

Testet, ob der Spalteninhalt oder das Ergebnis des Ausdrucks Null ist.

IS NULL
SELECT fname, lname
FROM employees
WHERE photo_on_file IS NULL

[NOT] LIKE

Führt einen Mustervergleich durch (meist auf Zeichendatentypen beschränkt).

LIKE ('MAC%')
SELECT fname, lname
FROM employees
WHERE lname LIKE ('MAC%')

expr1 [NOT] IN (val1, val2,...) - oder – expr1 [NOT] IN (Unterabfrage)

Vergleicht Listen mit bestimmten Werten, indem geprüft wird, ob expr1 in einer Werteliste oder im ResultSet einer Unterabfrage enthalten ist.

IN ('SW', 'SE')
supplier_id IN
  (subquery)
SELECT fname, lname
FROM employees
WHERE sales_region IN ('SW', 'SE')
SELECT product_name
FROM products
WHERE supplier_id IN
  (SELECT supplier_id
  FROM supplier
  WHERE (country = 'Sweden'))

ANY (SOME)

Prüft, ob eine oder mehrere Zeilen im ResultSet einer Unterabfrage der angegebenen Bedingung entspricht bzw. entsprechen (ANY und SOME sind Synomyme; der Abfrage und Ansicht-Designer erstellt SQL-Anweisungen mit ANY).

<> ANY (subquery)
SELECT au_lname, au_fname
FROM authors
where city <> any
 (SELECT city FROM publishers)

ALL

Testet, ob alle Zeilen im ResultSet einer Unterabfrage der angegebenen Bedingung entsprechen.

advance > ALL (subquery)
SELECT title FROM titles
where advance > all
  (SELECT advance FROM
   publishers,titles
  where titles.pub_id 
   = publishers.pub_id
  AND pub_name = 
   'Alogdata Infosystems')

[NOT] EXISTS

Testet, ob eine Unterabfrage ein Ergebnis zurückgibt (kein bestimmtes Ergebnis).

EXISTS (subquery)
SELECT product_name
FROM products
WHERE EXISTS
  (SELECT * FROM 
   orders, products
  WHERE orders.prod_id 
  = products.prod_id)

* Die Beispiele für den Kriterienbereich enthalten für jeden Operator nur ein Beispiel, wobei nicht angegeben wird, welche Datenspalte durchsucht wird.

**  Datumsangaben können im Kriterienbereich in dem im Windows-Dialogfeld Regionale Einstellungenangegebenen Format eingegeben werden. Ausführliche Informationen finden Sie unter Regeln für das Eingeben von Suchwerten.

Siehe auch

Weitere Ressourcen

Entwerfen von Abfragen und Ansichten

Referenz (Visual Database Tools)