0
votes

Séquence sans numéro de ligne

J'ai ci-dessous jeu de données xxx

lorsque je sélectionne les données, les données ont l'air aléatoire. Mais je voudrais avoir dans une séquence inférieure à une séquence inférieure xxx

J'ai essayé avec le numéro de ligne, cela ne fonctionne pas d'une manière ou d'une autre pour la séquence ci-dessous. Quelqu'un peut-il m'aider s'il vous plaît?


6 commentaires

Pourquoi montrerait-il dans un ordre particulier? Vous n'avez pas de clause par . Les tables stockent des tas des tas ; Si vous souhaitez que le jeu de données retourné soit dans une commande spécifique, vous devez dire au moteur de données à quel point cet ordre est.


Stackoverflow.com/a/57497176/6167855


Ouais .. j'ai essayé avec commander aussi. Mais je ne commence pas dans cette séquence.


Pourquoi le Varcharne sur les identifiants? Shoudl pas celles-ci être int?


Aucun identifiant réel n'est différent .. ils ont des champs alphanumériques.


Ensuite, donnez des exemples représentatifs @chits. Les numériques et les chaînes trient très différemment.


3 Réponses :


1
votes

Utilisez un cas code> instruction code> dans commander par code>, la requête suivante doit faire ce que vous voulez:

select * from #table
order by case when Message = 'Parent' then ID else ParentID end, ParentID


1 commentaires

@Chits afin que tous les contenus de vos messages soient «parents»?



0
votes

Utilisez ceci:

select message,id,parentid
from  #table
order by case when parentid = '' then convert(int,id)-1 else parentid end


1 commentaires

Merci, cela fonctionne .. mais mon identifiant ne peut pas être converti en int. Sa valeur alphanumérique ..