Re: 問題18425について
arashi1977
居住地: 広島
投稿数: 1715
うーん、ちょっと解説がよわいのかなぁ…
以下の公式情報を見てください。
Oracle® Database SQL言語リファレンス 11g リリース2 (11.2) B56299-07:BETWEEN条件
http://docs.oracle.com/cd/E16338_01/server.112/b56299/conditions011.htm
真ん中あたりの説明を確認します。
引用:expr1 BETWEEN expr2 AND expr3 は「expr1がexpr2とexpr3の間のもの」ではなく「expr1がexpr2以上、かつ、expr1がexpr3以下のもの」です。
標準的なSQLなので、sqliteで確認してみました。
まず、expr1 >= expr2のパターン
次に、expr1 <= expr3のパターン
「LE(大文字LE、ASCIIコード10進数表記で76+69=145)」以下のものが表示されています。
※「LED(大文字LED、ASCIIコード10進数表記で76+69+68=213)」だとLEより大きくなるので含まれない。LIKE演算子とは異なるので注意してください。
検証には以下のSQLを使ってみるといいですよ
なので、この結果のAND(両方の結果に存在するもの)は
になるということです。
以下の公式情報を見てください。
Oracle® Database SQL言語リファレンス 11g リリース2 (11.2) B56299-07:BETWEEN条件
http://docs.oracle.com/cd/E16338_01/server.112/b56299/conditions011.htm
真ん中あたりの説明を確認します。
引用:
さらに次の式の値について考えてみます。
expr1 BETWEEN expr2 AND expr3
この式の値は次のブール式の値と同じです。
expr2 <= expr1 AND expr1 <= expr3
標準的なSQLなので、sqliteで確認してみました。
まず、expr1 >= expr2のパターン
sqlite> select prod_name from products where upper(prod_name) >= 'H' order by upper(prod_name);
HighPower_LED_ハンディライト2 ←ここ
Lantern ←ここ
led light
LED_サイクルライト
LEDライト
ledランタン
Light_LED_ハンディライト(6球)
Silver LED_ライト
Watch1
watch2
watch3
次に、expr1 <= expr3のパターン
sqlite> select prod_name from products where upper(prod_name) <= 'LE' order by upper(prod_name);
(Wide)LEDシーリングライト
BEST HITS_60's
BEST HITS_70's
BEST HITS_70's DANCE
BEST HITS_80's
BEST HITS_80's DANCE
cyclelight
HighPower_LED_ハンディライト2 ←ここ
Lantern ←ここ
※「LED(大文字LED、ASCIIコード10進数表記で76+69+68=213)」だとLEより大きくなるので含まれない。LIKE演算子とは異なるので注意してください。
検証には以下のSQLを使ってみるといいですよ
SELECT 'LE' <= 'LE';
SELECT 'LED' <= 'LE';
SELECT 'LED' LIKE 'LE';
SELECT 'LED' LIKE 'LE%';
なので、この結果のAND(両方の結果に存在するもの)は
sqlite> select prod_name from products where upper(prod_name) between 'H' and 'LE';
HighPower_LED_ハンディライト2
Lantern
投稿ツリー
-
問題18425について
(abcde12345, 2015-9-17 5:20)
-
Re: 問題18425について
(arashi1977, 2015-9-17 10:02)
-
Re: Re: 問題18425について
(pico1, 2015-12-13 10:48)
- Re: Re: 問題18425について (arashi1977, 2015-12-13 17:57)
-
Re: Re: 問題18425について
(pico1, 2015-12-13 10:48)
- Re: 問題18425について (abcde12345, 2015-9-19 10:33)
- Re: 問題18425について (pico1, 2015-12-19 11:02)
-
Re: 問題18425について
(arashi1977, 2015-9-17 10:02)