阿婆主的意思是想要这样查询的SQL是吧。那么请看下面:
select from [table_name]
where case when length(输入参数)=4 then time >= to_date('输入参数||0101','YYYYMMDD') and time <= to_date('输入参数||1231','YYYYMMDD')
case when length(输入参数)=6 then time >=to_date('输入参数||01','YYYYMMDD') and
time < to_date('(输入参数+1)||01,'YYYYMMDD')
case when length(输入参数)=8 then time = to_date('输入参数','YYYYMMDD')
这里值得注意的是:
1在第2个case when的时候,容易出现12月份+1之后变成13,可以自己进行一下处理,大体的思想应该是一样。
2输入的参数不是2012/2/2这种形式,二是20120202这种形式,那么你也可以根据你自己的需要。进行一些调整。
如果满意请给分1 select eidentity, ename from emp e,
(
select empid, count() from emp
where empid in (select a1empid from emp a1, emp a2 where a1empid>=a2empid and a1identity=a2identity)
group by empid
having count()>=3) t
where eempid=tempid
order by eidentity ;
2 select e
from emp e, (select empid,count() cnt from feeinfo group by empid) f
where eempid=fempid
and fcnt=0 ;存储过程不能直接写查询,需要将查询结果into到变量中或将查询定义成游标。
下面是into到变量的例子。
declare
ll varchar2(50);
begin
select fybm
into ll
from zf_fy
where zf_fynodeid = '条件';
-- 这里需要增加异常处理
exception
when no_data_found then -- 未找到数据
--处理
when too_many_rows then -- 找到多行数据
-- 处理
when others then -- 其他异常
-- 处理
end;where 1=1 --这个你写在后台
and 条件1 --其他的你就按这种方式来拼就行了,其他的条件不输入也不影响你前边的执行
and 条件2
and 条件3
and 条件4
能按懂吧?
1、先创建一个简单的数据表。
2、插入数据,顺便复习插入数据了,最好多插几个,查询的时候更明显。
3、select后面的字段是等下查询结果所显示的,where就是限制的条件,根据where查询到对应的列。
4、如果字段里面有数字的话也是可以根据数字大小进行查询的。
5、加入and语句可以同时限制两个条件来查询。
6、用%来查询,百分号在字母前表示以什么字母开头的,这里就是以名字为d开头来查询数据,同理把%放在后面就是以d结尾的名字。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)