为了账号安全,请及时绑定邮箱和手机立即绑定

oracle字段范围查询

oracle字段范围查询

偶然的你 2019-03-21 18:15:11
oralce中有一张表temp,表数据如下 name type张三 test1李四 test1王五 test1张三 test2张三 test3李四 test2请问各位大神怎么能将上面的数据 进行统计转换成:name test1 test2 test3 张三 1 1 1 李四 1 1 0王五 1 0 0统计name在type(所有值所构成的区间)的数目,按照name分组
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

设个job自动去执行这个procedure,你的查询sql只管从那个view里面查就好了,select * from myresultview


type值不确定的话,可以建一个procedure去动态根据type值执行,执行这个procedure生成一个view,再去查这个view就是根据当时type值所对应的结果: create or replace procedure p_mycolumn is v_sql varchar2(2000); cursor cursor_1 is select distinct t.type from temp t order by t.type; BEGIN v_sql := 'select name'; for v_temp in cursor_1 loop v_sql := v_sql || ',' || 'SUM(decode(type,''' || v_temp.type || ''',1,0)) AS ' || v_temp.type; end loop; v_sql := v_sql || ' from temp group by name order by name'; v_sql := 'create or replace view myresultview AS ' || v_sql; --DBMS_OUTPUT.PUT_LINE(v_sql); execute immediate v_sql; end;

查看完整回答
反对 回复 2019-04-30
  • 2 回答
  • 0 关注
  • 726 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信