假设这个查询功能正常:
SELECT
first_name,
consultant_id,
CASE consultant_id
WHEN 1 THEN 'First Consultant'
WHEN 2 THEN 'Second Consultant'
END
FROM consultant
ORDER BY first_name;
为什么我不能使用一些布尔逻辑添加另一个 WHEN 子句,而不是上面两个 WHEN 子句中隐含的等于?例如:
SELECT
first_name,
consultant_id,
CASE consultant_id
WHEN 1 THEN 'First Consultant'
WHEN 2 THEN 'Second Consultant'
WHEN BETWEEN 3 AND 12 THEN 'Everyone else'
END
FROM consultant
ORDER BY first_name;
引发此错误:
ORA-00936: missing expression
00936. 00000 - "missing expression"
*Cause:
*Action:
Error at Line: 7 Column: 10
有没有办法在不使用更详细的情况下完成这项工作:
SELECT
first_name,
consultant_id,
CASE
WHEN consultant_id = 1 THEN 'First Consultant'
WHEN consultant_id = 2 THEN 'Second Consultant'
WHEN consultant_id BETWEEN 3 AND 12 THEN 'Everyone else'
END
FROM consultant
ORDER BY first_name;