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

时间:2018-04-29 14:59:28

标签: sql sorting ssms

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

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

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

一个例子,说明我应该如何看待

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

Z
А
Б
В

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

А
Б
В
Z

考虑到必须为每个群体做这件事 scu + acnumber + year

即订单必须是这样的

    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

1 个答案:

答案 0 :(得分:2)

我想你想要:

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