J'essaie de convertir une requête qui renvoie une seule ligne avec plusieurs colonnes en plusieurs lignes avec une ou plusieurs colonnes. À titre d'exemple ma requête ressemble à ce qui suit visualisé:Transformer les colonnes SQLite en lignes
SELECT _id, value1, value2, value3, value4 FROM table WHERE _id IS 1;
RÉSULTAT:
_id value1 value2 value3 value4
----------------------------------------
1 10 11 12 13
Je voudrais que mes résultats ressembler à ce qui suit:
name value
--------------
value1 10
value2 11
value3 12
value4 13
mais je peux aussi travailler avec quelque chose comme ceci:
value
-----
10
11
12
13
Actuellement je convertis manuellement ceci en utilisant un MatrixCursor dans Android, mais la situation idéale serait d'avoir le curseur déjà dans un état utilisable. Existe-t-il un moyen de modifier ma requête pour récupérer les résultats dans le schéma souhaité ou pour utiliser quelque chose comme une table temporaire pour atteindre l'état final souhaité?
De même, existe-t-il un terme commun pour décrire cette fonctionnalité dans une base de données?
Si vous le souhaitez temporaire, vous pouvez facilement stocker le résultat dans une liste ou une carte si vous avez besoin d'un nom et d'une valeur. –
l'ID ne peut pas répéter. Cela devrait être unique. Vous ne pouvez donc pas avoir les mêmes ID pour plusieurs lignes. –
Merci pour la réponse Darshan, je stocke déjà le résultat dans un MatrixCursor, mais il provoque beaucoup de complexité lors de l'utilisation d'un CursorAdaptor. Le moyen le plus simple serait de masser les données dans la mise en page préférée à travers la sélection. Mon MatrixCursor fonctionne déjà, je cherche juste une solution plus élégante. @Vlad c'est un bon point, je ne suis pas très intéressé par la conservation de l'identifiant puisque j'en connais déjà la valeur (j'interroge avec). Mais le point principal est d'ajouter les colonnes de chacun des résultats comme une nouvelle ligne. –