Hi, you may add a dummy GROUP BY clause, to return no row if the table
is empty:
select min (x) from tbl group by null;
By the way, the good reasons for the standard behaviour may be the use
of other aggregate functions like COUNT (*).
Op 23 feb 2013, om 11:51 heeft Pierre Chatelier het volgende geschreven:
Ok, thanks !
There are certainly good reasons for that, but I find it surprising
at first sight.
Pierre
That's SQL standard -- query with aggregate functions always return
at
least one row.
[tested under 3.6.12 and 3.7.15.2]
I have a question regarding the use of aggregate functions.
Let's imagine the following db :
create table A (id1 INTEGER UNIQUE PRIMARY KEY, id2 INTEGER);
It is empty.
The following query :
select id1,id2 from A;
returns nothing, there is no row.
However, the following query, using the aggregate min() :
select min(id1),id2 from A;
returns an empty line (displays '|' in the shell).
Using avg(), max()... will do the same.
With the C interface, SQLITE_ROW is returned, and I must test
sqlite_column_type() against SQLITE_NULL to check that in fact,
there is no result.
Is this expected behaviour ?
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users