带有忽略条件的案例陈述postgres 9.3
Case statement with an ignoring condition postgres 9.3
在我的应用程序中,以下缩写允许我输入一个值并在应用程序中选择其类型,例如
: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 0
此post与其前任相关
并放在以下区域
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
表达式returns一个值,而不是可以用作条件的语法片段。您可以改为使用 or
逻辑运算符来创建此逻辑:
WHERE LENGTH(:Lang1) <= 4 OR languages[1] = :Lang1
在我的应用程序中,以下缩写允许我输入一个值并在应用程序中选择其类型,例如
: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 0
此post与其前任相关
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
表达式returns一个值,而不是可以用作条件的语法片段。您可以改为使用 or
逻辑运算符来创建此逻辑:
WHERE LENGTH(:Lang1) <= 4 OR languages[1] = :Lang1