sql join中能否使用case when_SQL---多表查询
时间: 2024-02-09 19:11:42 浏览: 116
MySQL中使用case when 语句实现多条件查询的方法
是的,可以在 SQL JOIN 中使用 CASE WHEN 语句。在多表查询中,我们可以使用 CASE WHEN 语句来根据特定条件将两个表中的数据进行匹配和组合。举个例子,假设我们有两张表 A 和 B,其中 A 表包含一个名为 id 的字段,B 表包含一个名为 id 的字段和一个名为 status 的字段。我们可以使用以下 SQL 语句将这两个表进行联结:
```
SELECT A.*, B.status
FROM A
JOIN B ON A.id = B.id
```
假设我们想根据 B 表中的 status 字段来选择要匹配的行,我们可以使用 CASE WHEN 语句来实现:
```
SELECT A.*, B.status
FROM A
JOIN B ON A.id = B.id AND
CASE WHEN B.status = 'active' THEN 1
WHEN B.status = 'inactive' THEN 0
ELSE NULL END = 1
```
在上面的例子中,我们使用 CASE WHEN 语句将 B 表中的 status 字段转换为 0 或 1 的值,并将其与 A 表进行匹配。这样,我们就可以根据一个或多个条件来联结多个表。
阅读全文