oracle一列内容转化为多列内容 是直接给所有字段建立一个索引,还是每个字段分别建?

[更新]
·
·
分类:互联网
4477 阅读

oracle一列内容转化为多列内容

是直接给所有字段建立一个索引,还是每个字段分别建?

是直接给所有字段建立一个索引,还是每个字段分别建?

我的回答:每个字段分别建索引。
对数据表来说,索引index是一种可选的结构,用户可以在表的一列或者多列上创建索引,用来加速对数据表中数据的访问。当用户访问表中的数据时,oracle根据从索引中找到数据的指针,然后根据这个指针指向的位置从表中直接取得数据。
索引index的目的是减少磁盘I/O,也就是输入输出,加速对数据的访问。
通常索引是由一列组成,复合索引由多个索引列组成。组成复合索引的索引列不超过32列。

oracle怎么修改索引增加复合字段?

不能直接修改,只能先drop单列的index. 再创建多列的复合索引。

Oracle多行转多列及TO_NUMBER(varchar2)排序问题?

首先你的size_no直接排序我不知道是按照什么排列的,因为你的size_no中存在#,所以是不可能转为number的。如果想利用number排序那么我建议用instr确定#的位置,然后用substr截取,截取后的值,再to_number进行排序。
至于转为三行那个,个人建议用rownum去做,先按照上面的方式排序,排序后用rownum标注行号,然后用行号-1,然后用行号去除以8,标出整除部分和余数。
可以到的:
rownum-1 整除部分得数 余数 size_no
0 0 0
1 0 1
2 0 2
。。。。。
7 0 7
8 1 0
9 1 1
10 1 2
........
18 2 2
19 2 3
而后利用余数部分进行case when(也就是列转行的工作),利用整除部分得数进行分组,这样就可以得到你要的那种结果了。