1

そのように、各パラメーターに対して異なる種類の比較を行う IN 演算子を作成する方法が必要です。

SELECT * 
FROM Table 
WHERE (par1, par2, par3) IN ((par1answer1, par2answer1, par3min1, par3max1),
                             (par1answer2, par2answer2, par3min2, par3max2),
                             ...,
                             (par1answern, par2answern, par3minn, par3maxn)

)

説明:

  • par1 は par1answer1 または par1answer2 と同じである必要があります
  • par2 は par2answer1 または par2answer2 と同じである必要があります
  • par3 は、par3min1 と par3max1 の間、または par3min2、par3max2 の間である必要があります

@EDIT
明確でなくてすみません、私は説明があまり得意ではありませんが、私はそれに取り組んでいます!
例セット:

par1    par2    par3
2       5       10
3       6       20
4       7       30
5       8       60

SELECT * 
FROM Table 
WHERE (par1, par2, par3) IN ((2,5,9,11),
                             (3,6,11,19),
                             (5,7,9,100),
                             (5,8,10,80),
                             (2,8,0,200))

Result:
par1    par2    par3
2       5       10    //matches first tuple
5       8       60    //matches fourth tuple
4

2 に答える 2

4

私はあなたが本当にこれを望んでいると思います:

WHERE ( (par1, par2) = (par1answer1, par2answer1) and
        par3 between par3min1 and par3max1
      ) or
      ( (par1, par2) = (par1answer2, par2answer2) and
        par3 between par3min2 and par3max2
      )

これはあなたの説明が正確ではありませんが、試行されたクエリの合理的な解釈のようです。

于 2015-11-20T19:32:22.053 に答える