В SQL «пустой» обычно означает NULL
. Итак, мне интересно, действительно ли вы намереваетесь использовать одну из следующих конструкций:
select (case when appointment_purpose is null and
appointment_purpose2 is null and
appointment_type2 is null and
appointment_type3 is null and
appointment_type4 is null and
appointment_type5 is null and
discuss_other is null
then 0 else 1
end) as discuss_other
Поскольку у одного из значений есть пробел, мне интересно, хотите ли вы обрабатывать оба пробела и нулевые значения:
select (case when (appointment_purpose is null or replace(appointment_purpose, ' ', '') = '') and
(appointment_purpose2 is null or replace(appointment_purpose2, ' ', '') = '') and
(appointment_purpose3 is null or replace(appointment_purpose3, ' ', '') = '') and
(appointment_purpose4 is null or replace(appointment_purpose4, ' ', '') = '') and
(appointment_purpose5 is null or replace(appointment_purpose5, ' ', '') = '') and
(discuss_other is null or replace(discuss_other, ' ', '') = '')
then 0 else 1
end) as discuss_other
Наконец, несколько столбцов в одной таблице, которые действуют как массив, обычно являются плохим признаком. Обычно это говорит о том, что вы хотите соединительную таблицу.