这是我期望的工作方式(c是一个游标)
c.execute('''SELECT e1.file, e1.sourceUrl, e1.rev
FROM externals1 AS e1
LEFT JOIN externals as e0
ON (e1.file = e0.file)
AND (e1.rev <> e0.rev)
''')
但这里有个错误:
^{pr2}$
带着信息
sqlite3.OperationalError: near "e0": syntax error
怎么回事?我要处理的情况是零。在
Tags:
NULL表示“未赋值或未知值”,因此不能等于或不等于其他值。(如何将未知或未分配的内容与其他未知或未分配的内容进行比较?)因此,不能使用
<>
或=
来测试它们;必须使用特殊运算符IS/IS代替。在你也可以使用
^{pr2}$如果你想测试不平等。在
!=
是表示不等于的ANSI,您在第二个示例中发布的内容对于我所知的任何数据库都是无效的SQL。你可以试试:构造是
operand IS NULL
和operand IS NOT NULL
(只有一个操作数到IS NUll
/IS NOT NULL
运算符)我想除了“not”之外还需要空值检查,但很难从问题中分辨出来。在请记住,}中的任何一个都是
x <> y
在x
或{NULL
时总是为真的。(至少对于兼容SQL89的引擎。)祝你愉快。在
另外:一般来说,Wikipedia article on NULL是一个有趣的读物。它讨论了一些基本的NULL构造(这些构造可能完全适用于某个特定的DB…)
相关问题 更多 >
编程相关推荐