PostgreSQL:布尔+整数

时间:2013-02-16 19:12:17

标签: postgresql integer boolean type-conversion

我有一个类似的查询:

SELECT (column LIKE 'string')+100

返回ERROR:运算符不存在:boolean + integer

我找不到将bool转换为int的函数,只有int:to_number()的文本。

有没有办法解决这个问题?

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

如果要在true时将字符串比较转换为1,在false时将字符串比较转换为0,则可以使用case语句:

select case when column like '%foo%' then 1 else 0 end as my_int from my_table;

如果您想添加到该结果,您可以执行以下操作:

select (case when column like '%foo%' then 1 else 0 end) + 100 as my_int from my_table;

答案 2 :(得分:1)

SELECT (column LIKE 'string')::integer +100

答案 3 :(得分:1)

我需要更便携的解决方案,所以这个最适合我:

SELECT CAST((column LIKE 'string') AS integer)+100