Comment transformer des colonnes SQL en lignes ?

J'ai un problème très simple qui nécessite une solution très simple et rapide dans SQL Server 2005.

J'ai une table avec x colonnes. Je veux pouvoir sélectionner une ligne dans le tableau, puis transformer les colonnes en lignes.

TableA
Column1, Column2, Column3

Instruction SQL à ruturn

ResultA
Value of Column1
Value of Column2
Value of Column3

@Kevin : j'ai effectué une recherche Google sur le sujet, mais une grande partie de l'exemple était trop complexe pour mon exemple, êtes-vous en mesure d'aider davantage ?< /p>

@Mario : La solution que je crée comporte 10 colonnes qui stockent les valeurs de 0 à 6 et je dois déterminer combien de colonnes ont la valeur 3 ou plus. J'ai donc pensé à créer une requête pour transformer cela en lignes, puis à utiliser la table générée dans une sous-requête pour dire compter le nombre de lignes avec Column >= 3

请先 登录 后评论

2 réponses

Joseph Daigle

Si vous avez un ensemble fixe de colonnes et que vous savez ce qu'elles sont, vous pouvez essentiellement faire une série de sous-sélections

(SELECT Column1 AS ResultA FROM TableA) as R1

et rejoignez les sous-sélections. Tout cela en une seule requête.

请先 登录 后评论
Community
SELECT IDColumn, 
       NumberOfColumnsGreaterThanThree = (CASE WHEN Column1 >= 3 THEN 1 ELSE 0 END) + 
                                         (CASE WHEN Column2 >= 3 THEN 1 ELSE 0 END) + 
                                         (Case WHEN Column3 >= 3 THEN 1 ELSE 0 END) 
FROM TableA;
请先 登录 后评论