假设我有三个不同的select语句,比如
SELECT 'Final', ID FROM Stage WHERE stageCompleted = 1;
SELECT 'Active', ID FROM Stage WHERE StartDate < NOW();
SELECT 'Inactive', ID FROM Stage;
我想要的是一些组合这些的方式,它显示一个
表'Final'
以及第一个查询匹配的所有行的行ID 'Active'
以及第二个查询匹配的所有行的行ID,但不是第一个'Inactive'
和所有剩余行的ID。我研究了各种各样的连接,但它们似乎并不适合我想要解决的问题。如何在SQL中组合三个选择查询,其中每个查询都排除了之前的结果?
答案 0 :(得分:8)
使用案例陈述
SELECT
CASE WHEN stageCompleted = 1 THEN 'Final'
WHEN StartDate < NOW() THEN 'Active'
ELSE 'Inactive'
END,
ID
FROM Stage