LIKE句のエスケープ

DB2でLIKE句の引数で
「%」「%」を使うとこの文字自体で検索できず全件が対象になってしまいます。
さらに「_」が小文字(シングルバイト)すべての一文字にヒット。
「_」が大文字(マルチバイト)すべての一文字にヒット。


これは仕様とのこと(IBM SQL解説書)
Oracleもそうだっけなあー

SELECT * FROM TBL1 WHERE COL1 LIKE '%@%%' ESCAPE '@'

のようにESCAPEする必要あります。いじょう。


あ、「'」(シングルコート)は「''」のようにシングルコート自身でエスケープしないとそのまま使えません。