2016-09-22 1 views
0

J'ai 2 tables T1 et T2. Je veux insérer des données dans T2 en fonction des conditions de T1.Besoin de convertir une ligne de table en colonne dans une autre table en fonction de la condition des éléments du tableau 1

Say T1 a des données

SID LinkName   
S1 Link1   
S1 Link2   
S2 Link1   
S2 Link2   
S2 Link3   
S3 Link2 

Je souhaite insérer des données dans une nouvelle table T2 ayant au-dessus de Link1, Link2 etc sous forme de colonnes de telle sorte que si S1 a link 1 puis sa colonne pour Link1 montrerait Oui et ainsi de suite. Exemple S3, colonne de Lien1 et Link3 montrera NO, Lien2 colonne indique OUI

SID Link1 Link2 Link3     
S1 Yes Yes No     
S2 Yes Yes Yes     
S3 No Yes No 

Répondre

0

Il suffit de lancer une requête:

select sid, 
     max(case when LinkName = 'Link1' then 'yes' else 'no' end) as Link1, 
     max(case when LinkName = 'Link2' then 'yes' else 'no' end) as Link2, 
     max(case when LinkName = 'Link3' then 'yes' else 'no' end) as Link3 
from t1 
group by sid; 

Vous pouvez utiliser create table as ou insert pour ajouter cette information à un autre table. Note: Ceci utilise le fait que 'yes'>'no'.