【发布时间】:2014-07-02 08:58:55
【问题描述】:
我是 DB2 领域的新手,正在使用: - 用于 .NET 的 DB2 数据提供程序(IBM.Data.DB2.dll 版本 9.7.4.4) - C# VS2010 与 .NET Framework 4.0
- 我正在尝试翻译以下 C# 查询语句:
TestQuery(() => db.Customers.Any());
到 (DB2) SQL 查询:
SELECT CASE WHEN (EXISTS(
SELECT NULL
FROM "CUSTOMERS" t0
)) THEN 1 ELSE 0 END AS "value"
上面的查询可以在MS SQL 无故障上运行。但 DB2 不接受该查询 并引发 ERROR [42601] [IBM][DB2/NT64] SQL0104N
- “All()”也遇到同样的问题
TestQuery(() => db.Customers.All(c => c.ContactName.StartsWith("a")));
(DB2) SQL 查询:
SELECT CASE WHEN (NOT (EXISTS(
SELECT NULL
FROM "CUSTOMERS" t0
WHERE NOT ((t0."CONTACTNAME" LIKE :p0 || '%'))
))) THEN 1 ELSE 0 END AS "value"
我的问题:如何正确地将“Any()”和“All()”转换为 DB2 SQL 查询?
非常感谢任何帮助和提示。提前谢谢。
【问题讨论】: