On Wed, 09 Sep 2015 09:56:12 +0200
"Domingo Alvarez Duarte" <sqlite-mail at dev.dadbiz.es> wrote:
> With your knowledge could you give your view about how evaluation of
> calculated/function columns should be done to have correct results.
...
> CREATE TABLE a(b);
...
> SELECT a, random() as r FROM a WHERE r <> r;
That's a syntax error, because there is no column a.r.
Once you reorganize it to make it syntactically valid, the answer
becomes clear:
select a, r from (
SELECT a, random() as r FROM a
) as R
WHERE r <> r;
will yield zero rows, every time. Whatever value RANDOM produces goes
in the "r" column and any value, including "r", is always equal to
itself.
--jkl