7
votes

Obtenir le numéro de ligne pour la requête

J'ai une requête qui retournera une ligne. Y a-t-il quelque chose que je peux trouver l'indice de ligne de la ligne que je pose quand la table est triée?

J'ai essayé Rowid mais obtenu # 582 Quand je m'attendais à la ligne n ° 7. xxx

J'ai essayé Rowid avec des résultats inattendus: xxx

edit: J'ai également essayé la suggestion de J Cooper (ci-dessous), mais les numéros de ligne il ne reste plus pas raison. xxx


1 commentaires

Pourquoi avez-vous modifié ma requête à ... où t2.recpeipeid <= t1.Recpeipeid ? Dans votre question, vous demandez le numéro de ligne par rapport à Nom pas recetteId - C'est pourquoi vous n'obtenez pas de bons résultats, utilisez où t2.name à la place


3 Réponses :


17
votes

Voici un moyen d'obtenir le numéro de ligne dans sqlite : xxx


3 commentaires

J'ai envie de faire quelque chose de mal ou de manquer une bizarrerie comportementale. Les numéros de ligne sont tous différents, selon lesquels je l'utilise, mais aucun d'entre eux n'est ce que je m'attendais. Pourrait-il avoir quelque chose à voir avec l'utilisation de chaînes (texte) comme colonne ID?


Pourquoi avez-vous modifié ma requête à ... où t2.recpeipeid <= t1.Recpeipeid ? Dans votre question, vous demandez le numéro de ligne par rapport à Nom pas recetteId - C'est pourquoi vous n'obtenez pas de bons résultats, utilisez où t2.name à la place


Cela fonctionne bien, merci. La clé est de trier par la colonne de la clause WHERE.



-3
votes

Ce que vous demandez peut être expliqué de deux manières différentes, mais je suppose que vous voulez trier la table résultante, puis numérisez ces lignes en fonction du tri.

declare @resultrow int

select 
      @resultrow = row_number() OVER (ORDER BY Name Asc) as 'Row Number'
from Categories WHERE CategoryID = 'C_L776102U'

select @resultrow


1 commentaires

Row_Number () n'est pas disponible dans SQLite



0
votes

Voici une histoire amusante que vous pouvez utiliser dans Spatialite pour obtenir l'ordre des valeurs. Si vous utilisez la fonction Count () avec une clause où la clause limitant uniquement les valeurs> = la valeur actuelle, le compte donnera en réalité la commande. Donc, si j'ai une couche de point appelée "mypoints" avec des colonnes "valeur" et "val_ordre" alors: xxx

donne l'ordre décroissant des valeurs. Je peux mettre à jour la colonne "val_order" de cette façon: xxx


0 commentaires