J'ai essayé d'obtenir Lorsque j'essaie d'obtenir toutes les données ( mais quand j'essaie de Sélectionnez Top N code> à partir d'une base de données basée sur le format alphabétique et numérotation. La sortie doit être commandée par alphabet d'abord et numéro après cela.
Sélectionnez * code>), je reçois la sortie correcte: p>
Sélectionnez TOP N CODE> (EX: TOP 5), je reçois une sortie différente que prévu (pas comme
SELECT * à partir du tableau code>): p>
nocust | share
-------+--------
a522 | BBCA
b454 | BBCA
k007 | BBCA
p430 | BBCA
q797 | BBCA
3 Réponses :
Vous avez une commande Vous devez adapter votre maintenant strong> Vous commandez réellement par très étrange par code> - il ne garantit que des entrées avec une lettre au début sont commandées avant celles qui ont un numéro au début - mais vous êtes
par code> signifie: il n'y a aucune garantie de la manière dont les lignes seront commandées - comme vous voyez ici.
commander par code> à : p>
nocust code> - et maintenant, je suis à peu près sûr, les sorties sera identique p> p>
Merci d'avoir répondu. J'ai essayé et cela a donné la bonne réponse. Mais quand je change le 'Concat (Partager, Nocust) <' ZZZZQ797 ', je reçois une fausse réponse (PS: Je sais que ce n'est pas une partie de la question, je vais éditer plus tard)
@Alvinchrisianto: C'est une question complète - mieux Demandez à une question nouvelle B> QUIMENT QUOI
Votre commande par n'est pas un type stable; Il trie les données généreusement dans l'une des deux catégories mais ne spécifie pas suffisamment de détails sur la manière dont les éléments doivent ensuite être triés dans la catégorie. Cela signifie que dans le top 5 de la forme SQLServer est libre de choisir une stratégie d'accès aux données qui signifie qu'il peut facilement s'arrêter après avoir trouvé 5 lignes dont les données sont telles que le cas Supposons que vous avoir cette sortie à partir de lorsque code> retourne 0
SELECT * ... Commande par catégorie CODE> P>
Category, Thing
Animal, Cat
Animal, Dog
Animal, Goat
Vegetable, Potato
Vegetable, Turnip
Vegetable, Swede
Merci pour la réponse, je suis la réponse de @marc_s et obtenez la bonne réponse, mais lorsque je change le 'Concat (Partager, Nocust) <' ZZZZQ797 ', j'ai une fausse réponse. Est-ce lié à ce que vous avez expliqué ci-dessus?
J'essaie de répondre à cela dans une perspective différente.
Tout d'abord, il convient de préciser que J'utilise la base de données il trie les lignes comme prévu. P> Il trie les lignes comme prévu . P> Si j'utilise la déclaration de cas dans l'ordre p> Il trie l'enregistrement comme prévu. Tous les lignes Si j'utilise moins de égal à Si j'utilise plus Il traitera toutes les lignes Le résultat du tri est comme prévu. p> dans tout le cas ci-dessus mais il n'a pas été sélectionné. P> vous peut faire cela, p> optimiseur permet de planifier le meilleur plan possible code>. p>
Optimizer Select Index ou ne sélectionnez pas l'index de manière la plus rentable code>. p>
aventure 2016 code> et
production.product code> a
504 code> lignes. P>
504 CODE> sont un processus. P>
20% des lignes totales code> dans le haut comme p>
20% des lignes totales code> dans le haut comme p>
504 code> et trier en conséquence. p>
Scan d'index en cluster (ID de produit> est terminé.
Dans cet exemple,
[nom] et le produit de produit code> sont deux index différents
non clusters non clusters code>. P>
Merci @kumarharsh, votre réponse obtenez les bonnes données identiques comme le résultat Marc_s. Le problème suivant est Stackoverflow.com/Questtions/58214109/get -Data-de-Select-to p pouvez-vous s'il vous plaît jeter un oeil sur cette question.