0
이유는 무엇입니까 (7.2) 네티의네티 문자열 비교 (공백과 공백)없이
select 'xyz' = 'xyz '
반환 사실? 공백이있는 문자열을 공백없이 문자열과 다른 것으로 간주하는 비교 논리를 작성하려고하지만이 동작으로 인해 작동하지 않습니다.
이유는 무엇입니까 (7.2) 네티의네티 문자열 비교 (공백과 공백)없이
select 'xyz' = 'xyz '
반환 사실? 공백이있는 문자열을 공백없이 문자열과 다른 것으로 간주하는 비교 논리를 작성하려고하지만이 동작으로 인해 작동하지 않습니다.
이 동작은 ANSI SQL-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)