0
votes

Concaténation supplémentaire des colonnes par ligne de SQL

J'essaie d'écrire un script Oracle ou MS SQL qui génère la première ligne contenant la valeur de la cellule dans la colonne A, la deuxième ligne contient la valeur de la colonne d'une colonne B et séparés par une virgule, La troisième rangée contient les valeurs de cellule de la colonne A, B et C concaténées et séparées par une virgule.

Supposons la table SQL suivante: xxx

la sortie serait: < / p> xxx

Comment devrais-je écrire l'instruction SQL SELECT?


0 commentaires

3 Réponses :


2
votes

Vous pouvez utiliser appliquer : xxx

si vous souhaitez combiner toutes les données en colonne, utilisez concat () : xxx


0 commentaires

1
votes

Un moyen d'improvoir des données et de faire une concaténation récursive (solution Oracle):

--data 
with t(a, b, c, d, e, f) as (
    select 'matty', 'lucy',  'james', 'mike', 'tala', 'mark' from dual union all 
    select 'jana ', 'steph', 'alex',  'mohd', 'hani', 'elie' from dual )
-- end of data
select ltrim(sys_connect_by_path(name, ','), ',') path
  from (select rownum r1, a, b, c, d, e, f from t) 
        unpivot (name for r2 in (a as 1, b as 2, c as 3, d as 4, e as 5, f as 6))
  connect by prior r1 = r1 and r2 = prior r2 + 1
  start with r2 = 1


0 commentaires

1
votes

Si vous souhaitez une version qui fonctionne dans les deux bases de données: xxx


0 commentaires