Stephan,

> Actually it seems to me that one NULL row is correct...
> 
> 7.9 <query specification>
>  1) Case:
>   a) If T is not a grouped table, then

You are correct according to the SQL spec.  

However, depending on what interface I use for the database, I can get
an empty recordset rather than a single NULL row.  This has more to do
with the interface translation (such as ODBC) than it does with what
PostgreSQL is returning.

Partly I think this is DB vendors and interpreters getting confused over
a consistency issue between SELECT SUM() and SELECT SUM() ... GROUP BY.  

SELECT sum(totalamount)
FROM invoices
WHERE invoice_no > invoice_no;

-----------
NULL

SELECT invoice_no, sum(totalamount)
FROM invoices
WHERE invoice_no > invoice_no
GROUP BY invoice_no;

invoice_no|sum
--------------
(empty recordset)

Obviously not particularly troublesome behavior, as these results seem
to be more or less consistent across most vendor implementations.  Plus
in many languages the tests for NULL and empty recordset overlap or are
easily combined.  And this is pretty clearly defined in SQL 92, as you
point out.

-Josh

P.S. Can you answer my question about indexing, please please?  

______AGLIO DATABASE SOLUTIONS___________________________
                                       Josh Berkus
  Complete information technology      [EMAIL PROTECTED]
   and data management solutions       (415) 565-7293
  for law firms, small businesses        fax 621-2533
    and non-profit organizations.      San Francisco

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to