2017-04-09 1 views
0

Quelle est la commande similaire pour unpivot dans Firebird? TKS à l'avance ...Convertir des colonnes en rangées dans Firebird (commande unpivot)

Mon tableau

Id | Name | Land | Water 
-----|----------|--------|--------- 
1 | John | 300m | 100m 
-----|----------|--------|--------- 
2 | Mark | 100m |  0m 
----------------------------------- 

Résultat désiré

Id | Name | Category | Surface 
-----|--------|------------|-------- 
1 | John | Land | 300m 
-----|--------|------------|-------- 
1 | John | Water | 100m 
-----|--------|------------|-------- 
2 | Mark | Land | 100m 
-----|--------|------------|-------- 
2 | Mark | Water | 0m 
+0

Modifier votre question et des exemples de données d'exposition et les résultats souhaités. –

Répondre

3

Vous pouvez utiliser union all:

select id, col1 as col 
from t 
union all 
select id, col2 as col 
from t; 

Quelque chose comme cela devrait fonctionner pour la plupart des buts.

EDIT:

Pour vos données particulier:

select id, name, 'Land' as category, land as surface 
from mytable 
union all 
select id, name, 'Water' as category, water as surface 
from mytable; 
+0

Ça ne marche pas ... –

+1

Et comment ça ne marche pas? Quelle requête avez-vous essayé? Quel message d'erreur avez-vous reçu? –

+0

Ca marche ... merci –