运行以下查询时:
SELECT T.ROWID FROM TABLE1 T WHERE NOT EXISTS (SELECT T.ROWID FROM TABLE2 T2 WHERE T2.C21= T.C11) AND EXISTS
(SELECT 1 FROM TABLE3 F WHERE T.C11 = F.C31)
导致错误
SQL0206N "ROWID" is not valid in the context where it is used.
SQLSTATE=42703
,而
SELECT T.ROWID FROM TABLE1 T WHERE NOT EXISTS (SELECT 1 FROM TABLE2 T2 WHERE T2.C21= T.C11) AND EXISTS
(SELECT 1 FROM TABLE3 F WHERE T.C11 = F.C31)
工作正常。是什么原因以及应该采取什么补救措施?
修改 我需要唯一地标识表中的一行。该表没有任何关键字段,我不允许编辑表数据。因此我使用了ROWID。 关于可以通过连接完成的注释,我可能需要将ROWID与其他条件一起使用,如下面的查询:
SELECT T.ROWID FROM TABLE1 T WHERE NOT EXISTS (SELECT 1 FROM TABLE2 T2 WHERE T2.ROWID= T.ROWID) AND EXISTS
(SELECT 1 FROM TABLE3 F WHERE T.C11 = F.C31).
即使在这种情况下,我也无法使用ROWID进行比较。我是对的吗?