Zusätzliche Zeilen in eine Tabelle einfügen

mindhunter

Benutzer
Beiträge
22
Hallo liebes Forum,

mit einer Select-Anweisung wird eine Datentabelle erstellt. Nun sollen jeweils nach dem Eintrag "something" noch zwei zusätzliche Zeilen erzeugt werden, so dass die Tabelle wie folgt aussieht.

something
test1
test2
thing
test1
test2


Code:
select 'something' from dual

union

select 'thing' from dual


Schöne Grüße
Stefan
 
Werbung:
vielleicht so:

Code:
test=*# select * from bla;
 id |  val  
----+-------
  1 | val 1
  2 | val 2
  3 | val 3
(3 rows)

test=*# select case when n = 1 then val else 'test ' || n::text end from (select * from bla left join lateral (select * from generate_series(1,3) n) x on (true)) bla;
  case  
--------
 val 1
 test 2
 test 3
 val 2
 test 2
 test 3
 val 3
 test 2
 test 3
(9 rows)

Das ist aber jetzt PostgreSQL.
 
Werbung:
Verstehe grad nicht so recht was du machen willst. Kommt der Wert "something" jetzt mehrfach oder nur einmal vor? Hängen die Werte von der Zeile "something" ab? Wo kommen test1 und test2 her oder sollen das die zusätzlichen Zeilen sein und wenn letzteres, warum kommen sie auch hinter "thing"?
Code:
WITH tabelle(spalte) AS (
   SELECT   'something'
   UNION ALL
   SELECT   'thing'
   ), zusatz(fk,spalte) AS (
   SELECT   'something','something'
   UNION ALL
   SELECT   'something','zusatz1'
   UNION ALL
   SELECT   'something','zusatz2'
   )
SELECT   isnull(z.spalte,t.spalte) AS spalte
FROM   tabelle t
LEFT JOIN zusatz z
ON     t.spalte = z.fk
ORDER BY t.spalte,z.spalte
something
zusatz1
zusatz2
thing
 
Zurück
Oben