Dans T-SQL, comment vérifier si une chaîne ne contient pas une autre chaîne?
J'ai un nvarchar
qui pourrait être "Pommes Oranges".
Je voudrais faire une mise à jour où, par exemple, un columm ne contient pas "Pommes".
Comment cela peut-il être fait?
WHERE NOT (someColumn LIKE '%Apples%')
Ou bien, vous pouvez utiliser ceci:
WHERE CHARINDEX(N'Apples', someColumn) = 0
Vous ne savez pas lequel fonctionne le mieux? Vous devez le tester! :-)
Marc
UPDATE: la performance semble être à peu près au même niveau que l'autre solution (WHERE someColumn NE COMME PAS '% Apples%') - il ne s'agit donc que d'une question de préférence personnelle.
Utilisez ceci comme condition WHERE
WHERE CHARINDEX('Apples', column) = 0
Les réponses que vous avez supposées être du texte statique à comparer. Si vous souhaitez comparer une autre colonne (par exemple, vous joignez deux tables et souhaitez en trouver une où une colonne d'une table fait partie d'une colonne d'une autre table), vous pouvez le faire.
WHERE NOT (someColumn LIKE '%' || someOtherColumn || '%')