在我的应用程序中,以下缩写允许我输入一个值并在应用程序中选择其类型,例如。

: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 When Length(:Lang1)>4 then languages[1] = :Language
end)

产生了一堆0 0 0
这篇文章与其前任有关
Part 2: how to get the Sum of a partition based query without actually pivoting并放置在以下区域
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 *

最佳答案

表达式返回一个值,而不是可以用作条件的语法片段。您可以使用case逻辑运算符来创建此逻辑:

WHERE LENGTH(:Lang1) <= 4 OR languages[1] = :Lang1

关于sql - 具有忽略条件的案例声明postgres 9.3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51077846/

10-09 00:36