通过在特定条件下添加具有特定值的字段从两个表中进行选择

艾伦·迪普(Alan Deep)
Table1: Students
ID              Name        EternalToken
200901212       Joe         xxxxxx
200809922       David       yyyyyy
201009122       Chris       zzzzzz

Table2: Banned
ID      StudentID
1       200901212

我想选择所有学生并显示一个附加字段,该学生通过隐藏EternalToken来表明该学生已被禁止

SELECT * FROM Students s 
LEFT JOIN Banned b
ON s.ID = b.StudentID

这将同时显示两个表。但是,我希望结果是这样的:

ID              Name        EternalToken    Banned
200901212       Joe         NULL            1
200809922       David       yyyyyy          0
201009122       Chris       zzzzzz          0

只有被禁止的学生才可以 EternalToken = NULL

请注意,这只是我要实现的目标的一个示例,并不完全是我在做什么。学生和取缔只是一个例子,我知道这不是多对多的关系,所以我可以在一张桌子上就可以做到。但是从技术上回答这个问题将极大地帮助我实现灵活的解决方案。

蒂姆·比格莱森(Tim Biegeleisen)

您可以使用以下查询:

SELECT
    s.ID,
    s.Name,
    CASE WHEN b.StudentID IS NOT NULL THEN NULL ELSE s.EternalToken END AS EternalToken,
    CASE WHEN b.StudentID IS NULL THEN 0 ELSE 1 END AS Banned
FROM Students s
LEFT JOIN Banned b
    ON s.ID = b.StudentID;

在此处输入图片说明

演示版

请注意,这与该COALESCE功能相反COALESCE检查一个值并返回一个备用值NULLCASE令牌的上述表达式检查值是否不是 NULLNULL在这种情况下返回,否则显示永恒的令牌值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MYSQL从具有特定条件的两个表中选择值

如何使用SQL Server在特定条件下从两个表中检索数据?

从表中获取所有字段并在特定条件下进行标记

合并两个具有不同大小的列表,在特定条件下使用流API合并两个

在特定条件下连接两个数组?

在特定条件下合并两个 Pandas DataFrame

两个组合,jQuery选择插件仅在特定条件下工作

sql在特定条件下具有空值的累积总和

SQL查询以获取在特定条件下具有其他列的重复列值

对于数组中的特定条件,获取至少具有两个值的文档,在MongoDB中查询

在特定条件下获取数据集的特定值

特定条件下的 SQL UPDATE 字段

为什么启动两个以上的AVD仅在特定条件下有效

来自两个集合的具有特定条件的 MongoDB 内部连接

在特定条件下从JSON中选择

Python-在特定条件下选择数组的行?

在特定条件下仅选择此 ID

Pandas:在特定条件下对子集进行排序

查询以在特定条件下进行增量计数

在少数几个特定条件下进行高级分类

C#数据表在特定条件下选择最后一行

SQL-如何联接两个表,但只有某些特定条件完全匹配?

如何通过在特定条件下添加列来丰富数据框?

如何通过在pyspark中的特定条件下添加列来丰富数据框?

与表连接,但仅在特定条件下

从具有两个单独索引的表中进行选择不使用取决于 where 子句中的值的键

匹配具有特定条件的 2 个 SQL 表

添加新行并在特定条件下复制单元格的值

在特定条件下查找ArrayList中的值