James K. Lowden wrote: > select a, r from ( > SELECT a, random() as r FROM a > ) as R > WHERE r <> r; > > will yield zero rows, every time.
$ sqlite3 SQLite version 3.8.12 2015-09-12 19:50:58 ... sqlite> create table a(a); sqlite> insert into a values (1),(2),(3); sqlite> select a, r from (SELECT a, random() as r FROM a) as R WHERE r <> r; 1|-909199267849538533 2|8366540922678358399 3|-6124149463908475628 It happens to work only without a FROM clause (where SQLite uses a coroutine instead of a plain table scan): sqlite> select r, r from (select random() as r from a); -52277736304787193|5169235301562468199 563040897996752099|-5125387114614101287 8645211790850467701|5445986856138557805 sqlite> select r, r from (select random() as r); -283842963402875928|-283842963402875928 Regards, Clemens