2011-12-05 5 views
-1

フィールドの内容がテーブルに含まれているかどうかをテストするにはどうすればよいですか?たとえば、名前は "Anne"です。 私はSQLクエリ - 人名の不在のテスト

おかげ

+0

あなたはどのRDBMSを使用していますか? –

+0

この条件はどこにありますか?クエリ内またはトリガ内で、ストアプロシージャ、関数...? – danihp

答えて

3
IF NOT EXISTS (SELECT 1 FROM MyTable WHERE [Name] = 'Anne') 
BEGIN 
    .... 
END 

NOT EXISTSCOUNT(*) = 0に好適である...「この名前は私のテーブルにない場合は、」その後、と言う条件を書きたいと思います。後者の形式は、適切に実行するのに適したインデックスを必要とすることがある(すなわち、利用可能なインデックスに応じて全テーブルスキャンを実行しない)。

0

これは、プロシージャとして実行するか単純なSQLクエリ/更新を行うかによって異なります。ミッチは前者に良い解決策を与えてくれました。あなたはまた、のようなLIKE=を置き換えることにより、パーシャルをチェックすることができ

SELECT ... FROM MyTable 
WHERE NOT NameColumn = 'Anne' 
AND ... 

WHERE NOT NameColumn LIKE 'Anne%' 

または

WHERE NOT NameColumn LIKE '%Anne%' 

しかし、クマを、それは後者だ場合は、次のWHERE句でありますLIKEには、テーブルのサイズやその他の要因によってパフォーマンスに関する考慮事項があります。

関連する問題