PostgreSQL:布尔+整数
我有一个类似这样的问题:PostgreSQL:布尔+整数,postgresql,integer,boolean,type-conversion,Postgresql,Integer,Boolean,Type Conversion,我有一个类似这样的问题: SELECT (column LIKE 'string')+100 它返回错误:运算符不存在:布尔+整数 我找不到将bool转换为int的函数,只有文本到int:to_number 是否有解决此问题的方法?使用条件表达式,请参阅使用条件表达式,请参阅如果要将字符串比较转换为1(为真)和0(为假),可以使用case语句: select case when column like '%foo%' then 1 else 0 end as my_int from my_ta
SELECT (column LIKE 'string')+100
它返回错误:运算符不存在:布尔+整数
我找不到将bool转换为int的函数,只有文本到int:to_number
是否有解决此问题的方法?使用条件表达式,请参阅使用条件表达式,请参阅如果要将字符串比较转换为1(为真)和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;
如果要将字符串比较转换为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
我需要更便携的解决方案,所以这个最适合我:
SELECT CAST((column LIKE 'string') AS integer)+100
您希望布尔值true或布尔值false被强制转换为什么?两者都取决于子句between的结果。我需要得到整数-0或1。像“string”这样的列::integer+100`有效吗?否则,当..时使用用例。。THENthanx很多@vol7tron,::integer对我很有效!:您希望布尔值true或布尔值false被强制转换为什么?两者都取决于子句between的结果。我需要得到整数-0或1。像“string”这样的列::integer+100`有效吗?否则,当..时使用用例。。THENthanx很多@vol7tron,::integer对我很有效!:我不这么认为,但如果出于某种原因,你发现需要经常做这种事情,你可以把它放在一个函数中:创建函数matchestext,text返回整数作为$$select case,当$1像$2,那么1 else 0结束$$LANGUAGE SQL;然后,您的sql将是select matchescolumn,“%foo%”+100(我不这么认为),但如果出于某种原因,您发现需要经常执行此类操作,您可以将其放入一个函数中:创建函数matchestext,当$1与$2相似时,text返回整数作为$$select大小写,当$1与$2相似时,则返回1,否则返回0 end$$LANGUAGE sql;然后,您的sql将是从my_Table中选择matchescolumn,“%foo%”+100。您是否可以为::integer?@Mansoor,文档检查提供参考。您是否可以为::integer?@Mansoor,文档检查提供参考。