2016-07-05 60 views
0

我有一個下表中的Mysql:MySQL的合併列到一個且按字母順序

id | Name     | Abbreviation | 
---+-----------------------+---------------+ 
1 | aaaa     | a    | 
3 | bbbb     | NULL   | 
2 | cccc     | c    | 
4 | dddd     | d    | 
8 | eeee     | NULL   | 
---+-----------------------+---------------+ 

我想查詢返回以下。如果指定的縮寫,然後返回縮寫,如果沒有縮寫,然後返回名稱,但縮寫,名字應該是按字母順序排列,所以像這樣

id | Result | 
---+----------+ 
1 | a  | 
3 | bbbb  | 
2 | c  | 
... 

我怎樣才能做到這一點?

回答

1

自己碰到了解決方案。因爲Abbreviation列可以是NULL或有價值,我可以使用COALESCE那會得到我第一個非空列,換句話說:

select id, coalesce(abbreviation, name) as thename from sometable order by thename; 
相關問題