2016-07-05 2 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; 
Смежные вопросы