问题描述
我正在尝试在sqlite3中编写一个查询,该查询将在我的数据库表中搜索匹配项,然后根据是否找到匹配项创建一列。
这是我的代码:
import sqlite3
conn = sqlitet3.connect('mydatabase.db')
cur = conn.cursor()
query = '''
CREATE TABLE test AS SELECT
identifier,MAX(CASE WHEN identifier == "ABC123" THEN 1 ELSE 0 AS id_flag)
'''
cur.execute(query)
print(cur.fetchone())
MAX语句用于折叠重复值。例如,如果有两行具有标识符ABC123,则查询将搜索id_flags的最大值,并仅输出具有该标识符的一行。
因此,我的预期输出(以及用常规SQL编写时的输出)大致如下:
Identifier id_flag
XYZ234 0
ABC123 1
QRS789 0
这会导致语法错误“ AS附近”。
如果我删除了AS部分(以及之后的id_flag)并运行了代码,则语法错误将移至“)附近”。
如果删除括号,则语法错误将移至“ CASE”附近。
我已经查看了sqlite3 syntax flowchart,但是我不知道如何构造此查询并且不会出现语法错误。
感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)