Заимствование из ответа пользователя user606723, но показывающее, как это чаще всего реализуется в MySQL, который должен использовать IFNULL()
.
IFNULL () возвращает первое выражение, кроме случаев, когда первое выражение равно нулю, оно возвращает второе выражение. Он предназначен для таких сценариев.
SELECT
IFNULL(company_name, last_name) AS name
FROM mytable
ORDER BY name
Редактировать
Если company_name содержит пробелы вместо NULL, то вы можете сделать это:
SELECT
IF(company_name <> '', company_name, last_name) AS name
FROM mytable
ORDER BY name
В операторе IF, если первое выражение имеет значение true, тогда оно возвращает второе выражение, в противном случае оно возвращает третье выражение.
Если у вас может быть NULL или пусто, то это будет работать:
SELECT
IF(company_name IS NOT NULL AND company_name <> '', company_name, last_name) AS name
FROM mytable
ORDER BY name