トップページに戻る    次の豆知識へ    前の豆知識へ

豆知識15 文字列の空白埋め比較


文字列同士の等価条件は、双方がchar型の場合のみ、空白埋めを行って比較されます。 CHAR と VARCHAR2 の違い 〜 文字列比較セマンティクス select 'aaa' from dual; の'aaa'は、char型です。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ create table typeTest as select '1' as ColA, '2 ' as ColB, rtrim('2 ') as ColC, regexp_replace('2 ','a') as ColD from dual; 名前 NULL? 型 ------ -------- ----------- ColA char(1) ColB char(4) ColC varchar2(1) ColD varchar2(4) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ select case when '1' = '1 ' then 'eq' else 'not' end as tes1, case when '1' = cast('1 ' as varchar2(100)) then 'eq' else 'not' end as tes2, case when cast('1' as varchar2(100)) = cast('1 ' as varchar2(100)) then 'eq' else 'not' end as tes3 from dual; tes1 tes2 tes3 ---- ---- ---- eq not not