リテラルの比較¶
text
値の比較では大文字と小文字が区別されます。つまり、 ORDER BY
句の中で演算子 =
、 <>
、 <
、 >
、 <=
および >=
を使用してリテラルを比較する際に、 text
型の値を使用して結合条件を評価する場合などでは、大文字と小文字が考慮されます。
実行エンジンは、リテラルを比較する条件をデータソースにプッシュダウンする場合、ソースで (実行エンジンと同様に) 大文字と小文字を区別した比較が実行されるものと仮定しています。実際はそうではない場合 (ソースが Microsoft SQL Server である場合など)、結果は間違っている可能性があります。ソースで大文字と小文字を区別せずに比較が実行されることが既知である場合、クエリで UPPER
関数または LOWER
関数を使用してリテラルを比較します。
SELECT count(*) as satisfied_customers_count
FROM customer_satisfaction_form
WHERE UPPER (satisfied) = 'Y';
The Execution Engine does not push down these functions automatically to the sources because it would significantly make all the queries to these types of sources slower.