我目前有两个SQL语句,我想将它们合并为一个,并设置一个状态,如果它满足每个。我在下面发布了一些大量剥离的代码:
select * from database where date1 < SYSDATE
select * from database where date2 < SYSDATE
理想情况下,我喜欢它,如果它符合第一个声明中的标准,它会设置'status1'的标志,如果它不符合该标准,但符合第二个声明的标准我会喜欢设置'status2'的标志 - 希望有意义!
例如,数据如下:名称| ID |状态
谢谢:)
答案 0 :(得分:1)
试一试:
select Name, ID, CASE
WHEN date1 < SYSDATE THEN 1
WHEN date2 < SYSDATE THEN 2
END as Status
from mytable
where date1 < SYSDATE or date2 < SYSDATE
答案 1 :(得分:1)
select *
from (
select name, id, 'status1' as status
from some_table
where date1 < SYSDATE
UNION ALL
select name, id, 'status2'
from some_table
where date2 < SYSDATE
)
答案 2 :(得分:1)
UPDATE mytable
SET flag =
CASE
WHEN date1 < SYSDATE THEN
'status1'
ELSE
'status2'
END
WHERE date1 < SYSDATE
OR
date2 < SYSDATE
答案 3 :(得分:1)
因为你说你想更新状态......
UPDATE database
SET flag = CASE WHEN date1 < SYSDATE THEN 'status1' WHEN date2 < SYSDATE THEN 'status2' ELSE NULL END