求个sql语句,估计有点难哦2 请acmin_CHM进来
如果o表里也有 f g 显示结果的时候,如果 st表里没有数据,就显示 o表的f g,如果st里能显示 f g 的值 就 不显示o表的f g 语句该怎么写呢。
(重开一贴)ACMAIN_CHM 请答,我选择用你的语句简单好理解,当然其他的也不错。谢谢大家
SQL code:
select
o.*,
case when st.f is null then o.f else st.f end as f,
case when st.g is null then o.g else st.g end as g
from
o
left join
(
select
mid,
max(if(type='f',value,0)) as f,
max(if(type='g',value,0)) as g
from
st
where
not exists(select 1 from st s where s.mid=st.mid and s.type=st.type and s.time>st.time)
group by mid
) as st
on o.mid=st.mid
加个IFNULL函数。
SQL code:
select o.*,
IFNULL((select `value` from st where mid=o.mid and type='f' order by `time` desc limit 1),0) as f,
IFNULL((select `value` from st where mid=o.mid and type='g' order by `time` desc limit 1),0) as g
from o
josy
您的语句里的 select 1 不知道是不是有问题
acmain_chm 这个意思不对,当 st里能select出值的时候就显示 st里的值,但是没有,就显示 o的 f g的值。
应该不会有问题,报错还是数据不对?
另外,还可以试试下面这个:
SQL code
Code highlighting produced by Actipro Co
相关问答:
大家帮忙看看这2个sql语句哪个查询的速度更快点。谢谢帮忙。比较着急。在做性能测试。
select * from
表A LEFT OUTER JOIN 表B ON (表A.id || ' ' =表B.id) ,表C , 表D, 表E
Where其他条件
select * ......
环境:1.win2003server+oracle9i
2.oracle9i字符集为AMERICAN_AMERICA.WE8ISO8859P1
3.oracle sql developer版本 1.5.5
现象描述: 1.在sql developer 中查询oracle中的某个表,中文全部显示为乱码。
......
sql可以有两个以上的触发器吗??我指的是for触发器,那其他的呢??
什么意思?
可以的
10个都没问题
可是我写了两个for insert 触发器,造成进程阻塞了呢?怎么办呢?请高人指点
......
表如下
教室ID 座位数 开始时间 结束时间 2009年1月1日 2009年1月2日 2009年1月3日
101 50 08:00 08:30 30 40 50
101 50 09:00 ......
因为平时这种操作比较多,直接在数据库上手动设置危险性较大,所以想用SQL语句实现。
在网上实在搜不到结果,这里高手多,希望能得到答案。
谢谢。
你想怎麼設置?
SQL code:
--创建测试表
......