我有一个sql表(9.3postgresql版本),其中有字段(tour character variance,tourtime int)。。。我想写一个查询,比如case when tour = 'A' then tourtime = 2 when tour = 'B' then tourtime = 3 else 0
等等。。
但是我犯了错误
整型和布尔型大小写类型不能匹配
这是为什么?
最佳答案
在你的情况下,你有树枝:
case when tour = 'A'
then tourtime = 2
when tour = 'B'
then tourtime = 3
else 0
end
在前两个表达式中,有布尔表达式(
(tourtime = 2)
和(tourtime = 3)
),根据列true
的值,它们是false
或tourtime
。在第三个表达式中,有一个整数表达式(0
)。当系统试图推断结果的类型时,它匹配这三种类型,并发现它们是不同的。
因此,您应该拥有所有整数表达式或布尔表达式,这取决于您希望得到的结果。