なぜ
select 'xyz' = 'xyz '
Netezza(7.2)でTrueを返しますか?スペースのある文字列をスペースのない文字列とは異なると見なす比較ロジックを構築しようとしていますが、この動作のために機能しません。
この動作は、ANSISQL-92述語比較ルールに準拠しています。比較する前に、文字列を同じ長さにスペースで埋める必要があります。
この動作を回避したい場合は、「=」の代わりに「LIKE」を使用するか、「=」の比較にlength()チェックを追加できます。
select 'match' where 'xyz' = 'xyz ';
?COLUMN?
----------
match
(1 row)
select 'match' where 'xyz' like 'xyz ';
?COLUMN?
----------
(0 rows)
select 'match' where 'xyz' = 'xyz ' and ( length('xyz') = length('xyz '));
?COLUMN?
----------
(0 rows)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加