我正在名为storelocation2的下表上运行一个简单的PostgreSQL查询:
store_name | brand | city | store_id
----------------------------------------------
MS Products | SAMSUNG|Gurugram|5611
Ajay Electric| SAMSUNG|Gurugram|5611
Vijay Sales | SAMSUNG|Gurugram|5611
运行此命令后:
postgres=> \d storelocation2;
返回以下表格详细信息:
Column | Type | Modifiers
-------------+-----------------------+-----------
store_name | character varying(20) |
brand | character varying(20) |
city | character varying(20) |
store_id | numeric |
查询 现在,当我运行select语句时:
select city
from storelocation2 where
brand='SAMSUNG';
以下结果:
city
------
(0 rows)
这是错误的。
答案 0 :(得分:1)
问题在于您看到的SAMSUNG
并不是您所得到的。通常是由于字符串开头或结尾出现意外字符。
最常见的是空格,可通过以下方式处理:
where trim(brand)= 'SAMSUNG'
接下来是其他隐藏的字符,您可以通过以下方式找到它们:
where brand like '%SAMSUNG%'
然后在中间存在字符:
where brand ~ '.*S.*A.*M.*S.*U.*N.*G.*'
根据最终匹配的内容,您可以调查列中的不寻常字符。
答案 1 :(得分:0)
尽管已在注释中说过,但仍可以通过uisng trim
函数尝试以下操作
select city
from storelocation2 where
trim(brand)='SAMSUNG';