我有一个像这样的查询:
SELECT (column LIKE 'string')+100
它返回错误:运算符不存在:布尔+整数
我找不到将 bool 转换为 int 的函数,只有文本转换为 int:to_number()。
有没有办法解决这个问题?
我有一个像这样的查询:
SELECT (column LIKE 'string')+100
它返回错误:运算符不存在:布尔+整数
我找不到将 bool 转换为 int 的函数,只有文本转换为 int:to_number()。
有没有办法解决这个问题?
SELECT (column LIKE 'string')::integer +100
如果要将字符串比较在 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;
我需要更便携的解决方案,所以这个最适合我:
SELECT CAST((column LIKE 'string') AS integer)+100