小编hbn*_*hbn的帖子

与PostgreSQL中的NULL比较会产生意想不到的结果

我正在尝试进行查询并在下面的源代码中停止:

btrim =干净的空间

upper = a - > A.

pcc.mac返回""(null)

pcc.username返回"SIMONE.GISELIA"

btrim(upper(pcc.mac::character varying::text)) <> btrim(upper(pcc.username::text))
Run Code Online (Sandbox Code Playgroud)

如果我把上面的代码,postgres理解为false,但如果我把下面的代码返回true,为什么?

SELECT CASE WHEN '' <> 'SIMONE.GISELIA' THEN true ELSE false end
Run Code Online (Sandbox Code Playgroud)

两个字段都返回不同的文本,结果为false,不应该.(至少我是这么认为的)

我坚持这一点,不知道是做什么的.

我需要比较这些选项,如果没有,源不起作用.

如果有人能帮助我,我会很高兴.

更新控制台来源:

logicasistemas=# SELECT CASE WHEN '' <> 'SIMONE.GISELIA' THEN true ELSE false end;
 case 
------
 t
(1 row)

logicasistemas=# select btrim(upper(pcc.mac::character varying::text)), btrim(upper(pcc.username::text)),
case when ((btrim(upper(pcc.mac::character varying::text))::character varying)::text <> (btrim(upper(pcc.username::text))::character varying)::text) then 1 else 2 end
from provedor_configuracao_cliente pcc
where pcc.cod_servico_contrato = 31905;
 btrim |     btrim      | case 
-------+----------------+------ …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

1
推荐指数
2
解决办法
5650
查看次数

标签 统计

postgresql ×1

sql ×1