gpt4 book ai didi

mysql - 比较同一个 SQL 表中的 2 列

转载 作者:行者123 更新时间:2023-11-29 13:16:18 29 4
gpt4 key购买 nike

我想比较 SQL 表中 2 个不同列的值。

A ---------------- B
10 -------------- 88
20 -------------- 401
30 -------------- 20
40 -------------- 99

我想保留第二列的值等于第一列的值(如 20),但也保留那些包含第一列的值的值(如 401,其中包含 40) 。

所以在这个例子中我会看到 C 列:

A ---------------- B ----------------- C
10 -------------- 88 ---------------- No
20 -------------- 401 -------------- Yes
30 -------------- 20 ---------------- Yes
40 -------------- 99 ---------------- No

事实上,我可以比较同一行中的字段,但不能将此比较应用于列中的所有字段。

可以这样做吗?

谢谢

最佳答案

您可以使用嵌套的 selectcase 语句来完成此操作。嵌套选择使用like来查看是否有满足相似条件的行。请注意,如果值相同以及 B 列以 A 列开头,则 like 将找到匹配项:

select t.*,
(case when exists (select 1 from table t2 where t1.B like concat(t2.A, '%'))
then 'Yes'
else 'No'
end) as C
from table t;

编辑:

如果通过包含,您希望 '1401' 也匹配 '40',则 like 的模式应为:concat('%', t2.A, '%').

关于mysql - 比较同一个 SQL 表中的 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21412544/

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