我在Mysql中有一个下表:
id | Name | Abbreviation |
---+-----------------------+---------------+
1 | aaaa | a |
3 | bbbb | NULL |
2 | cccc | c |
4 | dddd | d |
8 | eeee | NULL |
---+-----------------------+---------------+
我想查询以返回以下内容。如果指定了缩写,则返回缩写,如果没有缩写,则返回name,但缩写和名称应按字母顺序排序,如下所示
id | Result |
---+----------+
1 | a |
3 | bbbb |
2 | c |
...
我该怎么做?
答案 0 :(得分:1)
自己碰到了解决方案。由于Abbreviation
列可以是NULL
或有值,我可以使用COALESCE
来获取第一个非空列,换句话说:
select id, coalesce(abbreviation, name) as thename from sometable order by thename;