gpt4 book ai didi

SQL 如果存在则 "Yes' 否则 "No' 在新列中

转载 作者:行者123 更新时间:2023-12-02 02:24:53 25 4
gpt4 key购买 nike

我想在表中创建一个新列。如果主键存在于其他表中或满足特定条件,则返回“yes”,否则返回“no”。这是一个例子:

表 1:

Student
a
b
c
d

表 2:

Student | Subject
a | english
a | math
b | english
b | science
b | match
c | science
c | english
d | math

我希望看到此列添加到 Table1:

Student | HasMath
a | Yes
b | Yes
c | No
d | Yes

因此,如果学生的姓名存在于过滤表中,其中 Subject = 'Math',则生成的列将返回“”,否则返回“否” '。

有人可以告诉我如何通过 SQL 来做到这一点吗?非常感谢。

最佳答案

您通常会使用 exists 来执行此操作:

select t1.*,
(case when exists (select 1
from table2 t2
where t2.student = t1.student and t2.subject = 'math'
)
then 'yes' else 'no'
end) as has_math
from table1 t1;

与 Tim 的答案不同,即使第二个表中有多个 'math' 行,这也保证每个学生只返回一行。

关于SQL 如果存在则 "Yes' 否则 "No' 在新列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65838809/

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