2016-09-21 73 views

回答

1

此行为是根据ANSI SQL-92谓词比较规则。在比较之前,弦必须用空格填充到相同的长度。

如果您想避免这种行为,您可以使用“LIKE”而不是“=”,或者在“=”比较中添加一个长度()检查。

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)