Comment puis-je tester si un contenu d'un champ se trouve dans ma table? Par exemple le nom "Anne". Je voudrais écrire une condition qui dit « si ce nom n'est pas dans ma table », puis ...Requête SQL - test de l'absence de nom de personne
Merci
Comment puis-je tester si un contenu d'un champ se trouve dans ma table? Par exemple le nom "Anne". Je voudrais écrire une condition qui dit « si ce nom n'est pas dans ma table », puis ...Requête SQL - test de l'absence de nom de personne
Merci
IF NOT EXISTS (SELECT 1 FROM MyTable WHERE [Name] = 'Anne')
BEGIN
....
END
NOT EXISTS
est préférable à COUNT(*) = 0
. La dernière forme nécessite parfois un index approprié pour bien fonctionner (c'est-à-dire qu'elle n'effectue pas une analyse de table complète, en fonction des index disponibles).
Cela dépend si vous essayez de le faire comme une procédure ou une simple requête/mise à jour SQL. Mitch a donné une bonne solution pour le premier. Si c'est ce dernier, ce qui suit est une clause WHERE:
SELECT ... FROM MyTable
WHERE NOT NameColumn = 'Anne'
AND ...
Vous pouvez également vérifier partials en remplaçant =
avec LIKE
comme tel:
WHERE NOT NameColumn LIKE 'Anne%'
ou
WHERE NOT NameColumn LIKE '%Anne%'
Mais l'ours dans l'esprit que LIKE
a des considérations de performance en fonction de la taille de votre table, et d'autres facteurs.
Quel RDBMS utilisez-vous? –
Où cette condition est-elle placée? Dans une requête ou à l'intérieur d'un déclencheur, mémoriser une procédure, une fonction ...? – danihp