Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL:布尔+整数_Postgresql_Integer_Boolean_Type Conversion - Fatal编程技术网

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,文档检查提供参考。