• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数キーが存在する場合のIN演算子)

SQLserver2005でのWhere句の書き方について悩んでいます

このQ&Aのポイント
  • SQLserver2005でのWhere句の書き方について悩んでいます。複合キーの同時指定を簡潔に行う方法はないでしょうか?
  • SQLserver2005のIN演算子を使用することで、複数の条件を指定して行を取得することができます。ただし、複合キーの場合はすべての組み合わせを個別に指定する必要があります。
  • SQLserver2005では複合キーの同時指定を簡潔に行う方法は存在しません。取得したい行が増えれば増えるほど、記述が複雑になってしまう可能性があります。他のクエリの記述方法を検討することをおすすめします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

WHERE (名前,品種) IN (('りんご','品種1'),('りんご','品種2'),('ごぼう','品種2')) って書きたいのですよね。SQL Serverではこれはできません。 (SQL標準でもないと思いますが) インデックスを使いつつ楽にIN指定する方法は、今回のケースでは、ないと思います。 インデックスを使うのをあきらめて WHERE 名前+'*'+品種 IN ('りんご*品種1','りんご*品種2','ごぼう*品種2') とやるか、地道に書いてください。

Unripe01
質問者

お礼

ご回答ありがとうございます! まさにご回答の通りのINの使い方をやりたいと思ってました。 SQLserverでは、やはりないのですね。残念です。 重そうですが、レコード数と相談して インデックスを使うのは諦めました。 Viewで 名前 + ',' + 品種 as forSearch という列を作って、 in指定することにしました。 ありがとうございます。

関連するQ&A