暂无图片
sql查询多字段排序问题在项目中的实践问题
我来答
分享
知行合一
2021-08-03
sql查询多字段排序问题在项目中的实践问题

项目背景:

在项目中需要把数据中心机柜里面的设备所在位置取出来使用形成excel表格
设备所在机柜位置需要满足以下三个条件
1.柜列字母A-Z排序
2.柜位数字从小到大排序
3.U位置从小到大

SQL查询时无法按照以上条件进行排序输出
image.png

字段U数排序不生效,正确的排序结果应该是
image.png

sql查询语句如下:

SELECT DISTINCT
		t2.`设备名称`,
		"业务域" AS '所属区域',#IF(
IF
 (
		t2.minu = t2.maxu,
		t2.minu,
		CONVERT ( substring_index( CONCAT( t2.minu, "-", t2.maxu ), '-', 2 ), CHAR ( 255 ) ) 
 ) AS 'u数',
		t3.`柜列`,
		t3.`柜位`,
		t3.`机房` 
FROM
(
 (
		SELECT
			t.设备名称,
			max( t.`U数` ) maxu,
			min( t.`U数` ) minu 
 FROM
  (
  SELECT DISTINCT
			t1.`设备名称`,
			t1.`U数`,
			t1.`柜列`,
			t1.`柜位`,
			t1.`机房` 
  FROM
			t1 
  ORDER BY
			t1.`设备名称`,
			t1.`U数` 
  ) t 
 WHERE
			1 = 1 
  
 GROUP BY
			t.设备名称 
 ) t2,
 (
 SELECT DISTINCT
			t1.`设备名称`,
			t1.`U数`,
			t1.`柜列`,
			t1.`柜位`,
			t1.`机房` 
 FROM
			t1 
 ORDER BY
			t1.`设备名称`,
			t1.`U数` 
 ) t3 
) 
WHERE
 1 = 1 
 AND t2.`设备名称` = t3.`设备名称`
ORDER BY CONVERT(`柜列` USING gbk) asc,`柜位` asc,`u数` asc;

复制
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
Lucifer三思而后行
暂无图片

你这看起来得需要用正则来处理一下🤔

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
求教一个udev的问题
回答 5
感谢各位大佬的回答@付才魁@刘宗宝@章芋文
Oracle Linux 7.9+Oracle19.3 ASM读取不到磁盘组
回答 5
有用
expdp异机备份
回答 10
已采纳
请问二位专家,是先在需要备份的远程数据库上创建DBLINK吗?还有DUMP目录如何在本地创建啊
Oracle 创建了一个按月自动分区的分区表并加了compress。但是数据并没有被压缩,有什么办法可以让自动分区的表数据自动压缩?
回答 1
createtabletestpart(IDNUMBER(20)notnull,REMARKVARCHAR2(1000),createtimeDATE)compressPARTITIONBYRANGE
Oracle 高版本exp可以连入低版本服务器吗?
回答 1
已采纳
exp可以。
oracle 迁移 mysql 都需要注意什么
回答 1
函数、存储过程、还有就是数据类型的转换可以用oracle的工具sqldeveloper,这里面可以直接帮你转换,包括函数,存储过程,数据类型等,比较好用。如果只考虑数据的话,可以通过navicat工具
把一个Oracle的实例克隆一份到另一个服务器,做法有哪几种?
回答 1
目的是什么?复制软件还是数据?
ogg oracle-mysql 源端传输进程起不来
回答 10
oggoraclesqlserver。oracle版本11.2.0.4sqlserver版本是2012。ogg版本是源端123011ggsWindowsx64MSSQL64bitCDC.zip,目标端
存储有一个out MyCURSOR.cur_EFOUT的游标 ,那么我的Job需要怎么调用,直接写SQL调用吗?
回答 1
已采纳
你目前采取的方式就OK了,如果不想再嵌套一个存储过程,你可以把你这个新的存储过程里的代码,去掉createorreplaceprocedure…is,在首行加上declare,把这一整段都放到job中
AWR分析报告问题求助:数据库运行缓慢,提取AWR看到主要存在enq: HW - contention和gc buffer busy acquire等待事件,怎么判断enq: HW 这个是因为什么造成的了
回答 5
已采纳
可以阅读和参考MOS文档《Analyzing‘enq:HWcontention’WaitEvent(DocID740075.1)》