要生成一个交叉表形式的报表,交叉表大概有20多列,列数固定,每列的筛选条件有三个,用decode嵌套可以实现,SQL如下:select decode(列,'条件3',decode(列,'条件2',decode(列,'条件1',返回字段,''),''),'') as 列1
decode(列,'条件3',decode(列,'条件2',decode(列,'条件1',返回字段,''),''),'') as 列2
.............
decode(列,'条件3',decode(列,'条件2',decode(列,'条件1',返回字段,''),''),'') as 列20from 表我想问问这样做如果在数据量很大的情况下性能如何,会不会很慢啊???如果性能不好希望各位大侠能教我一个好的方法,谢谢了!
decode(列,'条件3',decode(列,'条件2',decode(列,'条件1',返回字段,''),''),'') as 列2
.............
decode(列,'条件3',decode(列,'条件2',decode(列,'条件1',返回字段,''),''),'') as 列20from 表我想问问这样做如果在数据量很大的情况下性能如何,会不会很慢啊???如果性能不好希望各位大侠能教我一个好的方法,谢谢了!
你换成 case 语句好了
between '20071201' and '20071231';首先要工作状态符合‘01’,之后单位类别要符合‘30’或‘40’,两个条件都符合返回hbje。
如果能嵌套,那么我认为这个函数就和EXCEL 中的IF函数类似了。
我个人是比较喜欢函数的,因为没学过程序语言,所以觉得函数比较简捷。上面的命令行不知道写的对不对,如果你知道,请帮忙指点下。
from 表
from 表