sql 中的文本变量按升序排序,其中首先是拉丁字母,然后是西里尔字母



如何按照我需要的顺序对数据进行排序,同时考虑到我在组内按customer排序 即

select
customer
, sku
, stuff
, action
, acnumber
, year
from mytable

首先我按SKU从低到高升序排序, 然后数字从最低到最高升序, 然后年份从最低到最高,然后对于每个组 scu + acnumber + year,我必须对 Customer 变量进行排序,其中第一个拉丁字母按升序增加,然后是西里尔符号

我给出的这个应该是什么样子的例子

例如,对于2017 年,对于编号 2 和 13-SKU,必须以这种方式订购客户

Z
А
Б
В

如何排序? 现在我一开始有一个西里尔符号

А
Б
В
Z

考虑到必须为每个组执行此操作的事实 SCU + 编号 + 年份

即订单必须是这样的

Customer SKU stuff action acnumber year
1        z  12    20     30        1 2017
2        z  13    20     30        1 2017
3        А  13    20     30        1 2017
4        Б  14    20     30        1 2017
5        Z  13    20     30        2 2017
6        А  13    20     30        2 2017
7        Б  13    20     30        2 2017
8        В  13    20     30        2 2017

我想你想要:

order by acnumber,
(case when customer like '[a-zA-Z]%' then 1 else 2 end),
customer

相关内容

最新更新