在下面的代码中,我不断遇到CASE的语法错误。是因为我的代码错误吗?
SELECT last_name, first_name, manager_id
FROM employees,
CASE WHEN manager_id='null' THEN text 'unmanaged'
END
FROM employees
答案 0 :(得分:0)
您的主要问题是查询中有两个FROM
子句。所以这样的事情应该起作用:
SELECT last_name,
first_name,
manager_id,
CASE WHEN manager_id IS NULL THEN 'unmanaged'::text ELSE 'managed'::text END
FROM employees
此外,请从PostgreSQL文档中注意到这一点:
不要写expression = NULL,因为NULL不“等于” NULL。 (空值表示一个未知值,并且未知两个未知值是否相等。)此行为符合SQL标准。
答案 1 :(得分:0)
我在这里假设一点,但我认为您想要这样的东西:
SELECT last_name,
first_name,
manager_id,
CASE WHEN manager_id='null' THEN 'unmanaged' ELSE 'managed' END
FROM employees
...或者可能是这样:
SELECT last_name,
first_name,
COALESCE(manager_id, 'unmanaged')
FROM employees