J'ai ci-dessous jeu de données 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 p> 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? p> p>
3 Réponses :
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
@Chits afin que tous les contenus de vos messages soient «parents»?
Utilisez ceci:
select message,id,parentid from #table order by case when parentid = '' then convert(int,id)-1 else parentid end
Merci, cela fonctionne .. mais mon identifiant ne peut pas être converti en int. Sa valeur alphanumérique ..
Utilisez le tri conditionnel:
Si je convertis en null, cela fonctionne bien .. Merci gars. Mais le système n'accepte pas les valeurs nulles. Il s'attend à des blancs seulement.
Vous pouvez voir dans la démonstration que la 1ère requête fonctionne avec des blancs.
Pourquoi montrerait-il dans un ordre particulier? Vous n'avez pas de clause code> par code>. Les tables stockent des tas b> des tas b>; 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 i> différemment.