Foxpro SQL查询> 24标准

时间:2010-11-23 20:26:55

标签: sql foxpro

我正在使用OleDB连接到FoxPro DBF数据库。我需要使用column = key1或key2或key3 ...... key2000查询表中的所有项目。

FoxPro显然不喜欢长期查询....

我试过了两个:

where (col like "key1") or (col like "key2") or ..... (col like "key2000")

where col in ("key1", "key2", "key3", "key4".... "key2000")

第一个解决方案因“查询过于复杂”而失败。第二个键失败,因为范围内的元素太多(显然最大值为24)。这看起来很荒谬......

有没有办法构建我的查询而不需要多次读取?

感谢。

2 个答案:

答案 0 :(得分:4)

您需要将您的条件推送到临时表或条件表并从中查询

Create Table Criteria  (
                        UserSessionId ...
                        , KeyValue ....
                        )


Select ...
From MyMainTable
    Join Criteria
        On Criteria.KeyValue = MyMainTable.col
            And Criteria.UserSessionId = ...

答案 1 :(得分:0)

两种可能性:

1)使用多个IN子句,每个

中包含24个值
WHERE col IN (,,,,) OR col IN (,,,,) OR col IN (,,, )

2)将2000个值放在逗号分隔的字符串中并使用

SELECT * FROM Table WHERE ?string LIKE '%'+col+'%'