是否有一个sqlite函数可以检查字段是否匹配某个值并返回0或1?

时间:2014-06-10 18:55:42

标签: sqlite sql

考虑以下 sqlite3 表:

+------+------+
| col1 | col2 |
+------+------+
| 1    | 200  |
| 1    | 200  |
| 1    | 100  |
| 1    | 200  |
| 2    | 400  |
| 2    | 200  |
| 2    | 100  |
| 3    | 200  |
| 3    | 200  |
| 3    | 100  |
+------+------+

我尝试编写一个将选择整个表的查询,如果col2中的值为200则返回1,否则返回0。例如:

+------+--------------------+
| col1 | SOMEFUNCTION(col2) |
+------+--------------------+
| 1    | 1                  |
| 1    | 1                  |
| 1    | 0                  |
| 1    | 1                  |
| 2    | 0                  |
| 2    | 1                  |
| 2    | 0                  |
| 3    | 1                  |
| 3    | 1                  |
| 3    | 0                  |
+------+--------------------+

什么是SOMEFUNCTION()?

提前致谢...

2 个答案:

答案 0 :(得分:2)

在SQLite中,布尔值只是整数值0和1,因此您可以直接使用比较:

SELECT col1, col2 = 200 AS SomeFunction FROM MyTable

答案 1 :(得分:1)

Does sqlite support any kind of IF(condition) statement in a select中所述,您可以使用案例关键字。

SELECT col1,CASE WHEN col2=200 THEN 1 ELSE 0 END AS col2 FROM table1