В моем приложении следующая аббревиатура позволяет мне ввести значение и выбрать его тип в приложении, например,
:input
в этом случае я создал переменную
:Lang1 as a varchar
У меня есть следующий код, просто спрашивающий, как много людей говорят на определенном языке из массива, используя оператор case
То, что я хочу знать, это то, сколько учеников знает язык из массива, и проверить по полю ввода, имеет ли оно значение внутри него или нет
(Case When Length(:Lang1)>4 --I'm assuming any language has more than 4 letters
then languages[1] = :Lang1 --When this condition statement is true then I get the children
--and the number of children speaking the entered language as a 1st language
else (ignore condition) end) --Simply trying to ignore the else side of the condition
Я попробовал этот код
(Case When Length(:Lang1)>4 then languages[1] = :Language
else cast(:Lang1 as varchar(20)) end)
ОШИБКА: символы типа CASE изменяются и логическое значение не может быть сопоставлено
и этот код
(Case When Length(:Lang1)>4 then languages[1] = :Language
end)
, который произвел кучу 0 0 0s
Эта запись относится к своим бывшим предшественникам
Часть 2: как получить сумму запроса на основе разделов без фактического поворота и помещается в следующую область
JOIN schoollevel sl ON sl.id = p.schoollevelid
GROUP BY s.studentnumber, p.firstname
) t
Where (Case When Length(:Lang1)>4 then languages[1] = :Lang1
else cast(:Lang1 as varchar(20)) end)
)
select *