我有像这样的SQL查询
select * from tablename where Fieldname not in (10005347797,1006009285)
我的目的是删除不在那个id中的剩余记录。在此之前,我希望看到该表中的所有记录将被删除。
如果你知道如何删除那些记录,你也可以给我删除命令。
答案 0 :(得分:1)
以下代码演示了如何使用SQL命令删除记录。
CREATE CURSOR Table1 (pk I) INSERT INTO Table1 (pk) VALUES(1) INSERT INTO Table1 (pk) VALUES(2) INSERT INTO Table1 (pk) VALUES(3) INSERT INTO Table1 (pk) VALUES(4) INSERT INTO Table1 (pk) VALUES(5) SELECT Table1.* FROM Table1 WHERE Table1.pk NOT IN (2, 4) DELETE FROM Table1 WHERE Table1.pk NOT IN (2, 4)
答案 1 :(得分:1)
FoxPro命令为您获取结果:
BROWSE LAST FOR NOT INLIST(FIELDNAME, 10005347797, 1006009285) && view/edit the records
DELETE FOR NOT INLIST(FIELDNAME,10005347797, 1006009285) && mark the records for deletion
PACK && permanently delete the marked records
注意:根据我使用FoxPro的经验,这些命令应该适用于任何版本的FoxPro。但是没有经过测试。
答案 2 :(得分:0)
一个问题:
类型10005347797和1006009285是'string'?
如果是这样,试试这个('alltrim'以防万一):
删除tablename为not INLIST(ALLTRIM(字段名), '10005347797', '1006009285')
否则
只使用没有单引号
ENDIF