#sql
#sql
Вопрос:
У меня есть 20 столбцов x1-x20. Для каждой строки я хочу подсчитать, сколько столбцов имеют значение>50. Это своего рода обработка массива, но я не знаю, как это сделать в SQL. Не могли бы вы помочь? Спасибо, HHC
Комментарии:
1. Пожалуйста, предоставьте примерные данные и желаемые результаты, а также соответствующий тег базы данных.
Ответ №1:
Вне решения, включающего программирование хранимой процедуры, вам просто нужно вывести список каждого столбца, используя условия обращения, как показано ниже:
select
case when x1 > 50 then 1 else 0 end
case when x2 > 50 then 1 else 0 end
case when x3 > 50 then 1 else 0 end
case when x4 > 50 then 1 else 0 end
...
case when x20 > 50 then 1 else 0 end as cols_gt_50
from t
В простых SQL-операторах нет способа (насколько я знаю), чтобы вы могли обрабатывать имена столбцов как массив.