Подтвердить что ты не робот

Mysql IFNULL ELSE

У меня есть оператор select, где я хочу сделать select conditional следующим образом

IFNULL(field_a,field_a,feild_b)

чтобы он проверял поле a, если a равно null, тогда select будет полем b

возможно?

4b9b3361

Ответ 1

Используйте COALESCE:

SELECT COALESCE(field_a, field_b)

COALESCE - это стандартная функция ANSI, которая возвращает первое ненулевое значение из списка указанных столбцов, обрабатывая столбцы слева направо. Поэтому в примере, если field_a имеет значение null, будет отображаться значение field_b. Однако эта функция вернет NULL, если не указано ненулевое значение из указанных столбцов.

Он поддерживается MySQL (я использовал его в версии 4.1), SQL Server (начиная с версии 2000), Oracle 9i +...

Ответ 2

и другой способ скин-кота (гибкий для не только нулевых сравнений)...

select if(field_a is not null, field_a, field_b) from...

Ответ 3

Да, но это всего лишь два параметра:

IFNULL(field_a,field_b)

Если field_a не равно null, оно будет возвращено. В противном случае возвращается field_b.

Ссылка: IFNULL

Ответ 4

Для большего количества примеров

MySQL IFNULL() с синтаксисом и примерами

Синтаксис

Синтаксис функции IFNULL:

IFNULL(expression_1,expression_2);

Примеры

   SELECT 
     name, IFNULL(businessphone, homephone) phone
 FROM
     users;



       #The above query return this result from users table

   +------------+-----------+----------+-----------
   | id        | name           | phone          |
   +------------+-----------+----------+-----------
   | 5         | Tommy Hill     | (541) 754-3009 |
   | 6         | John Smith     | (541) 754-3110 | 
   | 10        | Mark Greenspan | (541) 754-3111 | 
   | 11        | Kelvin Row     | (541) 754-3111 |
   +------------+-----------+----------+-----------