2010-08-26 9 views
2

Puis-je modifier l'ordre de tri par défaut dans une base de données SQL Server de sorte que les valeurs nulles et les chaînes de longueur nulle soient affichées en dernier.Ordre de tri dans SQL Server

Son SQL Server 2000

J'insiste, je veux changer le par défaut pour que toutes les requêtes, si possible

Répondre

1

ajouter un newColumn factice = (longueur (targetcolumn)> 0), et trier par ce premier.

5

Vous pouvez faire presque n'importe quel type en utilisant un case dans un order by. Voici les colonnes d'abord null, puis les chaînes vides, et le reste commandé sur col1 et col3:

select * 
from YourTable 
order by 
     case when col1 is null then 1 
      when col1 = '' then 2 
      else 3 
     end 
,  col2 
,  col3 desc 
4

Non, vous ne pouvez pas le faire: Sans ORDER BY, il n'y a pas d'ordre de tri par défaut. Ceci est une question très commune, donc j'ai écrit une réponse en conserve: Without ORDER BY, there is no default sort order

+0

+1 Je crois que c'est la seule réponse à ce jour que * vraiment * adresse la question. OP demande spécifiquement l'ordre de tri * default * (qui n'existe pas) –

+1

Je suppose que ce n'est pas ce qu'ils veulent dire. Ils aimeraient pouvoir faire 'order by x' et avoir des valeurs nulles et des chaînes vides à la fin plutôt qu'au début. –

+0

@Martin: Je peux vous confirmer que vous avez raison: que c'est ce qu'ils veulent dire. Peut-être que c'est la séquence de collation que je dois changer. – cindi