select * from
(select t.lsh,t.sqrid,t.sqrmc,t.sqbmid,t.sqbmmc,t.processinstid,t.lxfs,t.ym,
wf.endtime,
(case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
--else '-1'
end ) dqsj
from t_jbhf_ymsq t,
wfprocessinst wf
where t.processinstid= wf.processinstid
) m
where m.dqsj > '2018-06-20 17:44'
and
(case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end )='1'
如图,我需要在查询出来的展示列里在加一列,这个列就是最外边where条件后的case when 的结果,现在他的值作为判断等于1了,能起别名什么的也行,只要能出来一列就行,怎么做?
select * from
(select t.lsh,t.sqrid,t.sqrmc,t.sqbmid,t.sqbmmc,t.processinstid,t.lxfs,t.ym,
wf.endtime,
(case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
end ) dqsj,
(case
when (case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
end )>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when (case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
end )<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end ) nowdate1,
from t_jbhf_ymsq t,
wfprocessinst wf
where t.processinstid= wf.processinstid
) m
where m.dqsj > '2018-06-20 17:44'
and
(case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end )='1'
你看一下行列互换的方式就知道了
实在不行可以直接用鼠标操作啊 直接点表 然后修改表 试试
列名用常量,然后增加一个别名
select m.*,
(case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end) value
from
(select t.lsh,t.sqrid,t.sqrmc,t.sqbmid,t.sqbmmc,t.processinstid,t.lxfs,t.ym,
wf.endtime,
(case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
--else '-1'
end ) dqsj
from t_jbhf_ymsq t,
wfprocessinst wf
where t.processinstid= wf.processinstid
) m
where m.dqsj > '2018-06-20 17:44'
and
(case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end )='1'
alter可以修改表的属性
图形化管理工具就可以了啊
在第一个select 里面加上条件后面的case when 设置一个别名做为列输出。
select (case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end ) m_values,m.*
from
(select t.lsh,t.sqrid,t.sqrmc,t.sqbmid,t.sqbmmc,t.processinstid,t.lxfs,t.ym,
wf.endtime,
(case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
--else '-1'
end ) dqsj
from t_jbhf_ymsq t,
wfprocessinst wf
where t.processinstid= wf.processinstid
) m
where m.dqsj > '2018-06-20 17:44'
and
(case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end )='1'