2

(私はSQLに少し慣れていません)次のwhereような句を持つ、書き直したクエリがたくさんあります。

where some_number > A
and some_number <= B

次のように、単一の句を使用したいwhere(行が少ない、速くない/遅くない?):

where some_number between A and B

問題は、最初の句が A では排他的であり、B では包括的であることです。2 番目のクエリのように、1 行で「包括性」を指定する方法はありますか? ありがとう。

4

2 に答える 2

3

いくつかのポイント...

まず、使用する行数が少ない場合は、「行数が少ない」だけです。私は次のようにフォーマットします:

where some_number > A and some_number <= B

これは実際には、範囲の両端が個別にコード化された 1 つの範囲条件であるためです。


between A and B第二に、カバーの下で次のように変換される ため、実際には between バージョンよりも速くも遅くもありません。

where (some_number >= A) and (some_number <= B)

したがって、パフォーマンスは同じです。

基本的には気にしないでください。

于 2012-05-29T14:01:21.240 に答える
0

aを「+1」だけオフセットできます

または、最初の構文を使用するだけで、読みやすくなります。

于 2012-05-29T13:57:48.537 に答える