3

我在运行COUNT()对包含 NULL 值的字段使用该函数的查询时遇到问题。

我正在将 FreeTDS v0.91 与 unixODBC、PHP 5.3.10 和 SQL Server 2008 一起使用。我有使用 7.2 协议的连接。我正在尝试运行以下查询:

SELECT COUNT(ProductCode) AS p FROM Membership

仅当 Membership 中的每个 ProductCode 为空时,此查询才会引发错误。当我直接在 SQL Server 上运行它时,它会评估它应该如何(到 0)。

当我尝试从 FreeTDS 运行此查询时,我收到此错误:

SQLSTATE[24000]:无效游标状态:0 [FreeTDS][SQL Server]无效游标状态(SQLFetchScroll[0] at /builddir/build/BUILD/php-5.3.10/ext/pdo_odbc/odbc_stmt.c:537)

有谁知道为什么我会收到这个错误?我记得当我尝试一次循环遍历两个结果集时遇到了类似的错误,但这是一个查询。

ProductCode. 它似乎只有在结果COUNT()为零时才会失败。

有谁知道可能导致此问题的原因或我该如何解决?

4

1 回答 1

0

由于产品代码为 NULL,因此 SQL Server 不计算它来执行此操作,您需要告诉它:

 ISNULL(ProductCode, 0 )

或者

ISNULL(ProductCode, '' )
于 2014-02-15T03:18:03.563 回答