2

'where num between 2 and 4' と 'where num >= 2 and num <= 4' の使用の違いを理解したいと思います。これは、Oracle、Sybase-ASE、および MSSQL に適用されます。

純粋に視覚的な観点からは、「間」の方がよく見えます。しかし、私はパフォーマンスやその他の技術的な問題についてもっと心配しています. (たとえば、実行計画が異なる可能性はありますか)

「間」は純粋に表面的なキーワードですか? 「and」を避けるために、またはそれ以上のものを提供しますか?

4

2 に答える 2

3

を使用BETWEENすると、操作を複数回評価する必要がなくなる場合があります。

SELECT  AVG(RAND(20091225) BETWEEN 0.2 AND 0.4)
FROM    t_source;

---
0.1998

SELECT  AVG(RAND(20091225) >= 0.2 AND RAND(20091225) <= 0.4)
FROM    t_source;

---
0.3199

最初のクエリRAND()では が 1 回だけ呼び出されますが、2 番目のクエリRANDでは 2 回BETWEEN呼び出されRANDます。

SQL クエリの可読性についても言いたいことがありますBETWEEN

于 2013-02-27T17:38:16.187 に答える
1

データベースはクエリを最適化し、どちらの方法でも同じパフォーマンスを発揮する必要があります。

つまり、オプティマイザは解析ツリーを作成し、2つは同じ実行プランを持つ必要があります。

于 2013-02-27T17:35:49.573 に答える