我正在尝试动态构建一个SQLite SELECT
语句,该语句将计算多个列中成功&
个操作的数量。
我的数据库结构有8列(名为C1
到C8
)每个列都包含0
或1
。我当然有很多行。
我正在尝试构造一个SELECT语句来计算成功的&
操作的数量,例如:
SELECT * FROM (SELECT (C1 & 1) + SELECT (C2 & 0) + SELECT (C3 & 1) + ... + SELECT (C8 & 0))
但不幸的是,这种语法不起作用。示例中的1's
和0's
是由我的应用程序(SQLite
阶段之前)动态确定的值,因此我可以将它们构建为SELECT
语句中的值这样
最终,我希望能够确定SELECT (Cx & 0)
添加量最大的行。这是一种汉明距离函数。
任何人都可以看到我上面的SELECT
声明有什么不对吗?我尝试了很多变种,但没有SQLite
只是挂起。一个简单的按位SELECT
语句(例如SELECT (C1 & 1)
)可以正常工作,输出0
或1
。
更新
下面的答案实际上不起作用。如果我执行subselect语句
SELECT (C2 & 0)
无论价值如何,都会产生0
。如果C2
中的值为0
,那么我会将其计为匹配项,因此计算为1
。这可能吗???
答案 0 :(得分:0)
SELECT (C1 & 1) + (C2 & 0) + (C3 & 1) + ... + (C8 & 0) FROM MyTable