合并两个SQL语句,设置状态

时间:2011-03-30 16:08:26

标签: sql

我目前有两个SQL语句,我想将它们合并为一个,并设置一个状态,如果它满足每个。我在下面发布了一些大量剥离的代码:

select * from database where date1 < SYSDATE
select * from database where date2 < SYSDATE

理想情况下,我喜欢它,如果它符合第一个声明中的标准,它会设置'status1'的标志,如果它不符合该标准,但符合第二个声明的标准我会喜欢设置'status2'的标志 - 希望有意义!

例如,数据如下:名称| ID |状态

谢谢:)

4 个答案:

答案 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