Напечатайте новый столбец с условными ограничениями, используя оператор if в MySql - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть таблица 'actor', поля которой 'pk', 'fname', lname. Я хочу напечатать столбец (давайте назовем это имя), где по умолчанию печатается fname, но если fname равно null, то lname печатается.

Я использовал следующий запрос:

select if(fname = null,lname,fname) as name from actor;

Это, однако, не решает поставленную задачу. Он печатает имя, даже если значение равно нулю.

1 Ответ

0 голосов
/ 30 апреля 2018

Для сравнения со значением NULL необходимо использовать IS NULL:

select if(fname IS NULL,lname,fname) as name from actor;

или <=>:

select if(fname <=> null,lname,fname) as name from actor;

В вашем примере проще всего использовать COALESCE:

SELECT COALESCE(fname, lname) AS name FROM actor;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...