我有一个类似的查询:
SELECT (column LIKE 'string')+100
返回ERROR:运算符不存在:boolean + integer
我找不到将bool转换为int的函数,只有int:to_number()的文本。
有没有办法解决这个问题?
答案 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