暂无图片
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条回答
默认
最新
三笠丶
暂无图片

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

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏