2006-11-03

Lo que uno siempre supuso que no pasaba, pasó: el TOP de SqlServer sin Order By

Hoy vi lo que siempre supe que existía la posibilidad de que pase, pero siempre supuse que era un mito.

 

Cuando uno esta aprendiendo SQL y aprende para que funciona la keyword TOP, siempre lee: el motor de DB no te garantiza que dos tiradas de un query con TOP devuelvan los mismos resultados, si no tenes un ORDER BY único definido. Lo que pasa es que uno siempre cree que esto lo dicen para salvarse en caso de alguna cagada, pero que de verdad, siempre devuelve lo mismo.

Bueno, esto fue desmentido hoy en la oficina. Resulta que estabamos haciendo unos queries sin order by, con un TOP 50, pero cuando le poniamos TOP 51, el set de datos que devolvía era completamente distinto, por lo que ahora....

 

Repitan 100 veces conmigo:

No voy a usar TOP sin ORDER BY porque se que a alguien le devolvió cosas distintas...

No voy a usar TOP sin ORDER BY porque se que a alguien le devolvió cosas distintas...

...

 

Zaiden

1 comentario:

SinStereo dijo...

Jajjaja y bueno, a veces la realidad nos aplasta [??]

Sequel server, yo te voy a enseñar lo que significa offset!! Maldito maldito maldito...