首页 > 解决方案 > SQL 如果存在则“是”否则“否”在新列中

问题描述

我想在表中创建一个新列。如果主键存在于其他表中或满足一定条件,则返回' 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

我希望将此列添加到表 1:

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

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

谁能告诉我如何通过 SQL 来做?非常感谢。

标签: sql

解决方案


你可以试试:

SELECT t1.Student, CASE WHEN t2.Student IS NOT NULL THEN 'Yes' ELSE 'No' END AS HasMath
FROM Table1 t1
LEFT JOIN Table2 t2
    ON t2.Student = t1.Student AND t2.Subject = 'math';

推荐阅读