select * from (
创新互联建站服务项目包括红河哈尼网站建设、红河哈尼网站制作、红河哈尼网页制作以及红河哈尼网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,红河哈尼网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到红河哈尼省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
select 'A1' as c, a1 as a from tt
union all
select 'A2', a2 from tt
union all
select 'A3', a3 from tt
union all
select 'A4', a4 from tt
) order by a desc
恩,没弄清楚你要的是什么,不过大概写一个,参考下。
SELECT ID,名称,A,RANK()OVER(ORDER BY A) A名次,B,RANK()OVER(ORDER BY B) B名次,C,RANK()OVER(ORDER BY C) C名次,D,RANK()OVER(ORDER BY D) D名次 .......FROM TABLE
尝试一下。
首先你的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(也就是列转行的工作),利用整除部分得数进行分组,这样就可以得到你要的那种结果了。
1、首先在oracle建立数据表的时候,对表的命名有以下规范:以字母开头表名长度不能超过30个字符,不能使用oracle保留关键字,可以使用A-Z,a-z,0-9,#,$等。
2、如果表名中包含特殊字符是直接报错的。如下图使用了 *。
3、在建立表的时候,数字也是不能使用表名的开始的。
4、但如果使用双引号对表名进行规范的话,是可以建立以数字或者包含特殊字符的表名的。
5、过这样建立的表名,在查询数据的时候是非常麻烦的,查询时也要加双引号。而且这样建立的表名,在项目运行的过程中也非常容易造成各种麻烦,所以尽量不要使用。