我似乎在制造各种恶作剧
使用 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...”,你得到相同的结果,这太疯狂了
正如戈登所提到的,OR
在WHERE
您的第二个查询的子句中添加一个条件。
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] 删除。
我来说两句