Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ordina la tabella in modo casuale ma con eccezioni

Prova questo:

DECLARE @exceptionOrder uniqueidentifier = NEWID()

SELECT ID, Category, Code
FROM yourTable
ORDER BY CASE WHEN Category = 'C' AND Code = 101 THEN @exceptionOrder ELSE NEWID() END

Questo assegnerà lo stesso uniqueidentifier alle righe di eccezione, un uniqueidentifier casuale a ciascuna delle altre righe, quindi ordina per esse.