1

次のようなクエリがあります。

SELECT (column LIKE 'string')+100

ERROR: operator does not exist: boolean + integer を返します

bool を int に変換する関数が見つかりませんでした。テキストから int への to_number() しかありません。

この問題を解決する方法はありますか?

4

4 に答える 4

1
SELECT (column LIKE 'string')::integer +100
于 2013-02-16T19:44:49.380 に答える
1

条件式を使用します。http: //www.postgresql.org/docs/9.2/static/functions-conditional.html を参照してください。

于 2013-02-16T19:23:30.287 に答える
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;
于 2013-02-16T19:24:12.877 に答える
1

よりポータブルなソリューションが必要だったので、これが私に最適です:

SELECT CAST((column LIKE 'string') AS integer)+100
于 2013-02-17T05:10:17.643 に答える