トップページ >  Oracle SQL >  数値の1='1'は等しい
初版2006/04/12: 最終更新日2006/08/13
  数値の1='1'は等しい
目次
数値の1='1'は等しい
数値の1='1'は等しい
SQLではシングルクォーテーションで囲んだ文字列は文字型になります。
シングルクォーテーションで囲んでない数値は数値型となります。
しかし、以下のSQLのようにwhere句で 1 = '1' とすると、真であることが分かります。

select sysdate
from   dual
where  1 = '1';

このようなSQLを実行した場合、結果は以下のようになります。

sysdate
--------
06-02-04

これは、親切にも暗黙型変換
を行っているから等しいという結果が返ってくるのです。とっても便利です。
但し、これはパフォーマンスが落ちるので本来は型を合わせるべきです。