sql - 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 来做?非常感谢。
解决方案
你可以试试:
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';
推荐阅读
- c# - 重载方法取决于调用实例
- node.js - 为什么我不能在 Rasspian OS 中运行相同的应用程序?
- javascript - JavaScript + JQUERY:基于两个输入变量计算
- python - 大多数pythonic检查列表的方法归结为一个值
- php - 'woocommerce_get_item_data' 未显示在收到的订单页面
- android - com.google.android.glass.media 包不存在
- typescript - Typescript React-native styled-component 中的类型问题
- javascript - 在 a-frame 和 react.js 中播放和暂停视频
- testing - 寻找空手道自动化的简单 gradle 项目
- c# - ToString() 覆盖