avril
2010
Comment l’obtenir au moyen de SQL Server?
Grace à l’opérateur CROSS JOIN:
(
Select 'Lausanne' Ville, 'Suisse' Pays
union
Select 'Bruxelles' Ville, 'Belgique' Pays
union
Select 'Bangkok' Ville, 'Thailande' Pays
),
cte_Produit as
(
Select 'Pain' Produit, 'Condiment' Categorie
union
Select 'Sel' Produit, 'Condiment' Categorie
union
Select 'Savon' Produit, 'Entretien' Categorie
union
Select 'Javel' Produit, 'Entretien' Categorie
)
select
Ville,
Pays,
Produit,
Categorie
from cte_Ville
cross join cte_Produit
Grace à une jointure sans condition:
(
Select 'Lausanne' Ville, 'Suisse' Pays
union
Select 'Bruxelles' Ville, 'Belgique' Pays
union
Select 'Bangkok' Ville, 'Thailande' Pays
),
cte_Produit as
(
Select 'Pain' Produit, 'Condiment' Categorie
union
Select 'Sel' Produit, 'Condiment' Categorie
union
Select 'Savon' Produit, 'Entretien' Categorie
union
Select 'Javel' Produit, 'Entretien' Categorie
)
select
Ville,
Pays,
Produit,
Categorie
from cte_Ville,
cte_Produit
Grace à une jointure sur une constante artificielle:
(
Select 'Lausanne' Ville, 'Suisse' Pays, 1 Constante
union
Select 'Bruxelles' Ville, 'Belgique' Pays, 1 Constante
union
Select 'Bangkok' Ville, 'Thailande' Pays, 1 Constante
),
cte_Produit as
(
Select 'Pain' Produit, 'Condiment' Categorie, 1 Constante
union
Select 'Sel' Produit, 'Condiment' Categorie, 1 Constante
union
Select 'Savon' Produit, 'Entretien' Categorie, 1 Constante
union
Select 'Javel' Produit, 'Entretien' Categorie, 1 Constante
)
select
Ville,
Pays,
Produit,
Categorie
from cte_Ville
join cte_Produit
on cte_Ville.Constante = cte_Produit.Constante
Comment l’obtenir au moyen de SSIS?
Pour réaliser ceci, nous allons nous baser sur le dernier cas énoncé ci-dessus.
En effet, le composant « Merge join » ne permettant pas de joindre 2 datasets sur base d’aucune clef de jointure, nous allons donc devoir créer une clef artificielle grâce au composant « Derived column » et ce, pour les 2 datasets, pour ensuite réaliser une jointure sur cette nouvelle colonne.
Cette astuce prend particulièrement de sens lorsque les données proviennent de sources desquelles on ne peut pas ajouter directement une colonne (par exemple: fichier texte, source XML).
Ci-dessous un exemple illustrant ceci: