Partager via


Opérateurs de comparaison (Visual Database Tools)

Vous pouvez utiliser dans une condition de recherche tous les opérateurs SQL standard.

Lorsque vous utilisez des opérateurs dans une condition de recherche, les règles suivantes s'appliquent :

  • Les types des données utilisées dans la comparaison doivent correspondre. En d'autres termes, vous pouvez uniquement comparer du texte avec du texte, des nombres avec des nombres, etc. Certains systèmes de gestion de bases de données vous permettent d'utiliser une fonction ou un mot clé (tel CAST) pour convertir temporairement des données dans un autre type. Pour plus d'informations, consultez la documentation de votre base de données.

  • Si vous comparez des données texte, le résultat dépend du jeu de caractères actuellement utilisé. Par exemple, si une table a été créée avec des caractères scandinaves, les résultats de la recherche pourront être différents selon que le jeu de caractères en cours est le jeu (la page de codes) scandinave ou un autre jeu.

  • Si la valeur de comparaison est nulle, le résultat est inconnu. Les valeurs null ne donnent aucune correspondance, pas même avec les autres valeurs null. Par exemple, si vous recherchez un nom commençant par la lettre « M » ou une lettre située plus loin dans l'alphabet (name >= 'M') et que certaines lignes ne contiennent aucune valeur, ces lignes n'apparaissent pas, quel que soit l'opérateur de comparaison utilisé.

Le tableau suivant récapitule les opérateurs de condition de recherche définis pour le langage SQL standard.

Notes

Les informations dans cette rubrique sont dérivées des règles pour la norme SQL-92. Toutefois, chaque base de données peut implémenter SQL de sa propre façon. Les indications proposées ci-après ne sont donc pas forcément applicables dans tous les cas. Si vous avez des questions sur l'utilisation des opérateurs pour une base de données particulière, consultez la documentation de la base de données.

Opérateur

Signification

Exemple de volet Critères*

Exemple, volet SQL

=

Égal

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

<> !=

Différent de

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

>

Supérieur à

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

<

Inférieur à

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

>= !<

Supérieur ou égal à

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

<= !>

Inférieur ou égal à

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

BETWEEN expr1 AND expr2

Teste un intervalle de valeurs

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

Vérifie si le contenu de la colonne ou le résultat de l'expression est nul

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

[NOT] LIKE

Utilise les critères spéciaux (généralement limités aux types de données character)

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

expr1 [NOT] IN (val1, val2, ...) – ou – expr1 [NOT] IN (sous-requête)

Recherche une liste de valeurs spécifiques en vérifiant si expr1 apparaît dans une liste de valeurs ou dans le jeu de résultats d'une sous-requête

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)

Teste si une ou plusieurs lignes du jeu de résultats d'une sous-requête répondent à la condition spécifiée (ANY et SOME sont des synonymes ; le Concepteur de requêtes et de vues utilisera ANY lors de la création d'une instruction SQL).

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

ALL

Vérifie si toutes les lignes du jeu de résultats d'une sous-requête remplissent la condition spécifiée

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

Vérifie si une sous-requête retourne un résultat quelconque (et non un résultat spécifique)

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

*   Par souci de clarté, les exemples correspondant au volet Critères incluent un seul exemple par opérateur et n'indiquent pas dans quelle colonne de données s'effectue la recherche.

**   Vous pouvez entrer les dates dans le volet Critères en utilisant le format spécifié dans la boîte de dialogue Paramètres régionaux de Windows. Pour plus d'informations, consultez Règles pour l'entrée de valeurs de recherche.

Voir aussi

Autres ressources

Conception de requêtes et vues

Référence (Visual Database Tools)