Oracle SQL - WHERE 子句行为

艾曼松

我似乎在制造各种恶作剧

使用 varchar2 列进行简单查询,没什么复杂的

1)

select distinct 
name AS CLUSTER_NAME
FROM xtern_app_info a RIGHT JOIN cluster_farm b
ON a.app_cluster = b.name
where a.app_cluster = 'ASLDKJASKDJFASKDJF'
ORDER BY cluster_name desc;

零行,预期

2)

select distinct 
name AS CLUSTER_NAME
FROM xtern_app_info a RIGHT JOIN cluster_farm b
ON a.app_cluster = b.name
where a.app_cluster <> 'ASLDKJASKDJFASKDJF'
ORDER BY cluster_name desc;

返回 224 行,注意 WHERE 中的“=”

3)

如果我删除我得到 226 行的地方,为什么???

select distinct 
name AS CLUSTER_NAME
FROM xtern_app_info a RIGHT JOIN cluster_farm b
ON a.app_cluster = b.name
--where a.app_cluster = 'ASLDKJASKDJFASKDJF'
ORDER BY cluster_name desc;

4)你可以用任何文本替换“ASLDK...”,你得到相同的结果,这太疯狂了

瓦什

正如戈登所提到的,ORWHERE您的第二个查询的子句中添加一个条件

2)

select distinct 
name AS CLUSTER_NAME
FROM xtern_app_info a RIGHT JOIN cluster_farm b
ON a.app_cluster = b.name
where a.app_cluster <> 'ASLDKJASKDJFASKDJF' OR a.app_cluster IS NULL
ORDER BY cluster_name desc;

如果我没记错的话,那两个神秘的条目应该是 NULL。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章