- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数キーが存在する場合のIN演算子)
SQLserver2005でのWhere句の書き方について悩んでいます
このQ&Aのポイント
- SQLserver2005でのWhere句の書き方について悩んでいます。複合キーの同時指定を簡潔に行う方法はないでしょうか?
- SQLserver2005のIN演算子を使用することで、複数の条件を指定して行を取得することができます。ただし、複合キーの場合はすべての組み合わせを個別に指定する必要があります。
- SQLserver2005では複合キーの同時指定を簡潔に行う方法は存在しません。取得したい行が増えれば増えるほど、記述が複雑になってしまう可能性があります。他のクエリの記述方法を検討することをおすすめします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
WHERE (名前,品種) IN (('りんご','品種1'),('りんご','品種2'),('ごぼう','品種2')) って書きたいのですよね。SQL Serverではこれはできません。 (SQL標準でもないと思いますが) インデックスを使いつつ楽にIN指定する方法は、今回のケースでは、ないと思います。 インデックスを使うのをあきらめて WHERE 名前+'*'+品種 IN ('りんご*品種1','りんご*品種2','ごぼう*品種2') とやるか、地道に書いてください。
お礼
ご回答ありがとうございます! まさにご回答の通りのINの使い方をやりたいと思ってました。 SQLserverでは、やはりないのですね。残念です。 重そうですが、レコード数と相談して インデックスを使うのは諦めました。 Viewで 名前 + ',' + 品種 as forSearch という列を作って、 in指定することにしました。 ありがとうございます。