SQL Curtas #2: Dúvidas Comuns

Como mostrar registos por ordem aleatória?

Não existe uma forma “standard” de resolver este problema. Cada SGBD (Sistema de Gestão de Bases de Dados) tem uma forma diferente:

CREATE TABLE ProgRand (A INT);
INSERT INTO ProgRand (A) VALUES (9), (8), (7), (6), (5), (4), (3), (2), (1);
-- Ordem natural (armazenada)
SELECT * FROM ProgRand;
-- Ordem pelo campo A ascendente
SELECT * FROM ProgRand ORDER BY A ASC;
-- Ordem aleatória - SQL Server
SELECT * FROM ProgRand ORDER BY NewID();
-- Ordem aleatória com apenas 3 registos - SQL Server 
SELECT TOP (3) * FROM ProgRand ORDER BY NewID ();
-- Ordem aleatória - Oracle
SELECT * FROM ProgRand ORDER BY DBMS_RANDOM.VALUE;
-- Ordem aleatória - MariaDB / MySQL
SELECT * FROM ProgRand ORDER BY RAND();

[...]

Leia o artigo completo na edição 55 da Revista PROGRAMAR

Publicado na edição 55 (PDF) da Revista PROGRAMAR.