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

Ordine di ordinamento indeterminato quando si utilizza ROW_NUMBER() OVER colonna decimale con pareggi

Questa è un'ipotesi, ma se hai valori duplicati per FTE valore quindi non vi è alcuna garanzia in merito all'ordine in cui usciranno ogni volta che il codice viene eseguito. Probabilmente SQL Server sta cambiando il piano di query tra quando esegui un semplice SELECT e un SELECT con il WHERE criteri, facendo uscire un ordine diverso e ciò che stai vedendo.

Aggiungerei il PK alla fine del tuo ORDER BY solo per garantire che l'ordine sia sempre coerente.