簡體   English   中英

mySql 基於多列值排序結果

[英]mySql sort results based on multiple columns values

我有下表

ID 名字A 姓名B 昵稱A 昵稱B viewColm
1 聖達雷什 桑達爾 一個
2 阿爾托斯 馬魯蒂 一個
3 阿南德 科技 阿隆 阿隆
4 高瑟姆 綠色 阿達尼 港口
5 馬恆達 天蠍座 徐紫外 一個
6 塔塔 一個
7 納拉揚 大車 西斯科 氪金
8 薩提亞 柔軟的 奧利奧
9 希夫 鹽酸
10 拉坦 靛青 秈稻 一個

我是基於排序的

Select ID, Case when viewColm = 'A' Then nameA ELSE nameB END as name, 
           Case when viewColm = 'A' Then NickNameA ELSE NickNameB END as nickName 
From tablename 
Order by nickName,name

查看演示: db<>fiddle

ID viewColm 姓名 昵稱
2 一個 阿爾托斯
6 一個 塔塔
3 科技 阿隆
9 鹽酸
10 一個 拉坦 靛青
7 大車 氪金
8 柔軟的
4 綠色 港口
1 一個 聖達雷什 桑達爾
5 一個 馬恆達 徐紫外

我需要對結果進行排序的順序是(如果我們有昵稱,昵稱要排序,如果昵稱為空,則名稱列按字母順序排序):

ID viewColm 姓名 昵稱
2 一個 阿爾托斯
3 科技 阿隆
9 鹽酸
10 一個 拉坦 靛青
8 柔軟的
4 綠色 港口
1 一個 聖達雷什 桑達爾
6 一個 塔塔
5 一個 馬恆達 徐紫外

您需要檢查nickname = ''並按如下order by

Order by case when nickName = '' then name else nickname end, name

db<>小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM