Sql 带有忽略条件的Case语句postgres 9.3

Sql 带有忽略条件的Case语句postgres 9.3,sql,postgresql,select,case,postgresql-9.3,Sql,Postgresql,Select,Case,Postgresql 9.3,在我的应用程序中,以下缩写允许我输入一个值并在应用程序中选择其类型,例如 :input 在本例中,我创建了一个变量 :Lang1 as a varchar 下面的代码只是询问有多少人使用case语句从一个数组中说一种特定的语言 我想知道的是有多少学生从数组中知道一种语言,并对照输入字段检查它是否有值 (Case When Length(:Lang1)>4 --I'm assuming any language has more than 4 letters then langu

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

: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)
错误:大小写类型字符变化且布尔值无法匹配

这个密码呢

(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 0

这篇文章与它的前任有关 并放置在以下区域中

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

WHERE LENGTH(:Lang1)正在编写SQL查询或PL/pgSQL函数。你发布的所有代码都有很多语法问题,我不明白你想要什么。你能发布更多的代码以便理解你想要的内容吗?@LaurenzAlbe第2部分:如何在不实际旋转的情况下获取基于分区的查询的总和