Я ожидаю, что все платформы SQL, которые соответствуют стандартам SQL, вызовут аналогичную ошибку.
Подумайте об этом следующим образом.
CREATE TABLE test (
id INTEGER NOT NULL,
c CHAR(1) NOT NULL,
PRIMARY KEY (id, c)
);
INSERT INTO test VALUES
(1, 'a'),
(1, 'z'),
(2, 'b');
SELECT * FROM test ORDER BY c;
id c
-- -
1 a
2 b
1 z
Теперь подумайте, что означает следующий оператор.
SELECT DISTINCT id FROM test ORDER BY c;
Какое значение 'c' должно использовать БД для позиционирования 'id' 1 в порядке сортировки?Если он выбирает «а», то порядок «1,2».Если он выбирает «z», то порядок «2,1».