考虑以下 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()?
提前致谢...
答案 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