2016-08-19 73 views
1

アルファベット(A〜Zとa〜zを含む)の値を返すBETWEENパラメータを作成したいとします。 2つのBETWEEN句を使用せずにこれを行う方法はありますか?あなたは大文字と小文字の区別

WHERE UPPER(TRIM(fieldname)) BETWEEN 'A' and 'Z' 

これは遅くなります

WHERE UPPER(fieldname) BETWEEN 'A' and 'Z' 

または

WHERE UCASE(fieldname) BETWEEN 'A' and 'Z' 

はあなたには、いくつかの厄介なスペースを取り除くしたい場合があります使用しているプラ​​ットフォーム言わない

+2

あなたが比較しているものに対して、UPPERまたはLOWER(またはUCASEまたはLCASE)を行います。 – Hogan

+0

これはどのRDBMSですか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –

答えて

2

関数上で関数を実行すると、インデックス内でfieldnameを使用することはできません。したがって、テーブルスキャンを強制しています。これは、fieldnameがインデックスされ、テーブルにいくつかの行数がある場合は、2つの値とanまたはがより高速になることを意味します。

関連する問題