mysql - 如果列值为空,则使用其他列

标签 mysql sql join csv

首先,不要因为我尝试这样做而责备我 - 我的老板希望我将来自多个表的数据列表转储到一个 CSV 文件中。

此 CSV 包含两类人员,合并到一张表中:永久员工承包商

某些值的获取方式因您所属的类别而异。例如,如果您是承包商,您的职位描述在contractors.blended_role 中。如果您是永久性,职位描述位于 roles.blended_role 中,其中 roles.id = staff.role

所以我尝试了(类似的)这个:

SELECT
    stuff,
    (CASE
        WHEN c.blended_role IS NULL THEN
            r.blended_role
        ELSE
            c.blended_role
        END) as `Job Description`,
    morestuff
FROM
    everyone e
LEFT JOIN contractors c
    ON c.id = e.id
LEFT JOIN staff s
    ON s.id = e.id
LEFT JOIN roles r
    ON r.id = s.role

但是我遇到了语法错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'stuff, (CASE WHEN c.blended_role IS NULL THEN r.blended_role EL` at line 2

谁能提出替代方案?

更新

语法错误是由于缺少逗号导致的。

最佳答案

您没有名为 rvcv 的表别名。也许你的意思是:

SELECT
    (CASE
        WHEN c.blended_role IS NULL THEN
            r.blended_role
        ELSE
            c.blended_role
        END) as `Job Description`

或者,更简单地说:

coalesce(c.blended_role, r.blended_role) . . .

关于mysql - 如果列值为空,则使用其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512550/

相关文章:

php - MySQL SUM 函数

php - 从mysql中随机选择记录

mysql - SQL 加入聚合

mysql - 如何连接表以包含与另一个表中的值完全匹配的结果,或者根本不包含结果?

php - 我们可以将多个参数传递给 Controller ​​中的函数吗?

javascript - 如何使用nodejs将excel文件(XLSX)导入mysql

sql - 是否可以使用 SELECT 语句分部分获取数据库记录?

mysql - 根据条件联接表并返回符合条件的数据

SQL查询在内部联接期间连接两列

php - 根据 JOIN Criteria 将一列与其他列进行匹配