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