gpt4 book ai didi

sql - 如何选择与同一个表中的相应行不匹配的行?

转载 作者:行者123 更新时间:2023-12-04 06:14:04 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何计算出这个查询。

我有一个包含多列的表格。这些列中有两个:colA 和 colB。

一行中 colA 和 colB 中的值将匹配同一表中的不同行,但这些列中的实际值将不相等。

所以对于任何行:

Col_A | Col_B
val1.0 | val2.0

还有一行

Col_A | Col_B
val1.1| val2.1

有一个异常(exception),对应的行不存在,我需要选择的是这一行。

非常感谢任何有关此逻辑的帮助。

我一直在处理这种类型的查询

Select * 
from table1 e
where (e.Col_A = val1.0 and e.Col_B = val2.0)
and (e.Col_A != val1.1 and e.Col_B ! = val2.1)

这还很接近吗?当我写到上面的内容时,我觉得如果一个子句为真,那么另一个子句也必须为真。

在此先感谢您的帮助或提示。

附加信息,因为有澄清请求。

我正在做的是更新表格。该表有一列将捕获并标记我上述规则的任何异常(exception)情况。

该表大约有 12 列,其中两列可以具有两个可能值之一。这两列的值类型是 varchar2(30) 通常,对于具有一组值的任何行,都会有另一行具有其他值。其他一些不相关的列可以相同但不一定。

我实现的代码与下面类似,并且基于 KAJ 的左连接建议。然而,它似乎在直接查询中返回了太多行,而在更新中它实际上更新了每一行。

Update TableA Set Col_Ex = ('Exception')
Where Exists
(Select ... Example from Kaj s suggestion below);

最佳答案

假设如下:
1. 值是固定的(即 1.0 到 1.1 和 2.0 到 2.1)
2.你要找的是原始行,对应行不存在
3.原始行和相应行之间的连接在你没有提到的列中(我在下面称之为键)
...然后像下面这样的东西应该工作:

select original.*
from table original
left outer join table corresponding on corresponding.key = original.key and corresponding.Col_A = 'val1.1' and corresponding.Col_B = 'val2.1'
where original.Col_A = 'val1.0'
and original.Col_B = 'val2.0'
and corresponding.key is null

关于sql - 如何选择与同一个表中的相应行不匹配的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com