oracle字段范围查询

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分组


偶然的你
浏览 727回答 2
2回答

慕码人2483693

设个job自动去执行这个procedure,你的查询sql只管从那个view里面查就好了,select * from myresultviewtype值不确定的话,可以建一个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;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java