-1
votes

SQL CTE pour rejoindre deux résultats en un seul

Products || Price
apple   $2.45
kiwi    $2.59
mango   $3.19
pears   $5.00

3 commentaires

Montrez-nous le résultat attendu. (Texte formaté s'il vous plaît, pas d'images.)


La production attendue est des produits || Price les deux colonnes avec leurs données respectées ci-dessous


Spécifiez le résultat attendu!


3 Réponses :


0
votes

Comme vous avez édité la question de sorte que row_number () code> peut vous aider et utiliser une jointure externe complète sinon elle peut ignorer si une liste est supérieure à celle des deux autres CTE

WITH
group1 AS
(SELECT item as Products,
 row_number()over(order by item)rn from    dbo.fnParseDelimitedString('mango,apple,pears,kiwi',',')
),
group2 AS
(SELECT item as Price,
 row_number()over(order by item) rn from dbo.fnParseDelimitedString('$3.19,$2.45,$5.00,$2.59',',')
)
select t1.Products from group1 t1 
full outer join group2 t2 t1.rn=t2.rn


5 commentaires

MSG 156, niveau 15, état 1, ligne 10 Syntaxe incorrecte près du mot clé 'On' -


@Rehaan désolé que la faute de frappe ne devrait pas être leur chèque plz j'ai édité


Merci pour les efforts, mais comme je l'ai dit, je ne veux pas que l'Union, je souhaite que les deux colonnes soient adjacentes à l'autre, vérifiez ma question que j'ai modifiée


@Rehaan Row_Number Join va bien


@Rehaan et utilisez une jointure extérieure complète



0
votes

Essayez ceci si cela fonctionne pour vous: -

With CTE as
(
    SELECT ROW_NUMBER() over(order by a.item) as rownumber
    ,a.item as [Price]
    FROM dbo.fnParseDelimitedString('$3.19,$2.45,$5.00,$2.59',',') a
)
SELECT c.Fruit, a.Price
FROM CTE a
INNER JOIN 
(
    SELECT ROW_NUMBER() over(order by b.item) as rownumber
    ,b.item as [Fruit]
    FROM dbo.fnParseDelimitedString('mango,apple,pears,kiwi',',') b
)c on (a.rownumber = c.rownumber)


0 commentaires

0
votes

Vous devez corriger votre fonction dbo.fnparsedelimitedstring () code> pour renvoyer un numéro d'article. Vous pouvez ensuite utiliser ceci pour rejoindre:

WITH group1 AS (
      SELECT item as Product, item_number
      from dbo.fnParseDelimitedString('mango,apple,pears,kiwi',',')
     ),
     group2 AS (
      SELECT item as Price, item_number
      from dbo.fnParseDelimitedString('$3.19,$2.45,$5.00,$2.59',',')
     )
 --select Products from group1
select g1.product, g2.price
from group1 g1 join
     group2 g2
     on g1.item_number = g2.item_number;


0 commentaires