J'ai un jeu de données avec une colonne d'identifiant pour chaque groupe et valeurs pour chaque instance du groupe. J'aimerais modifier l'identifiant de chaque groupe pour être une valeur de ligne par certains critères, disons dans ce cas la valeur de la ligne qui commence par code pour créer des données d'échantillonnage p> le résultat souhaité que je voudrais avoir avec le a code> Une valeur d'instance% code> par groupe sous forme de colonne. P>
3 Réponses :
Je pense que vous pouvez le faire en utilisant la logique suivante
SELECT T1.*,CTE_1.Val
FROM @Test T1 INNER JOIN
(SELECT ID,VAL FROM @Test WHERE Val like 'A%') as CTE_1
ON T1.ID = CTE_1.ID
plutôt que 2 analyses, vous pouvez utiliser une fonction de fenêtre: si vous ne voulez pas null code> lorsque vous n'avez pas de ligne à partir de A code>, il suffit d'utiliser val code> au lieu de la case code> expression. p> p>
Bien utiliser Sélectionner Select dans Sélectionner une instruction est vraiment mauvais pour la performance.
Utilisez la jointure gauche. P>
select t1.Val, t1.ID , t.Val as val2 from @Test t1 left join @Test t on t1.ID = t.ID and t.Val like 'A%'