Dynamiczne podmiana pobieranych danych w zapytaniu

0

Mam w bazie zapisaną wartość:

wartosc = kod1||'/'||opis||'/'||temat 

Pobieram ją selectem:

select wartosc from tabela

Mam drugie zapytanie:

select wynik_1_zapytania from tabela2 limit 1 

żeby za wynik_1_zapytania podstawiło mi się

kod1||'/'||opis||'/'||temat 

Wynikiem drugiego zapytania będzie np.

1/cokolwiek/temat cokolwiek

Są to pola zdefiniowane w drugiej tabeli. Ogólnie chodzi o to, żeby użytkownik sam poskładał pola, które chce mieć wykorzystane w zapytaniu

0

nie mam pojęcia o co chodzi. Najlepiej opisz to KONKRETNIE wraz ze strukturą OBU tabel i przykładowymi danymi oraz wynikiem.

0

Tabele:

CREATE TABLE test.test
(
  wartosc text
)
WITH (
  OIDS=TRUE
);

CREATE TABLE test.test
(
  kod1 text, 
  opis text, 
  temat text, 
  info text
)
WITH (
  OIDS=TRUE
);

Funkcja, która obrazuje co chcę osiągnąć:

CREATE OR REPLACE FUNCTION test.test()
  RETURNS text AS
$BODY$

DECLARE 

wartosc_tab1 text;
wynik text;

BEGIN 

	wartosc_tab1:= (select wartosc from test.konfig); -- wynik tego zapytania = kod1||'/'||opis||'/'||temat

	wynik:= (select wartosc_tab1 from test.opisy limit 1); -- wynik tego zapytania jest identyczny jak pierwszego kod1||'/'||opis||'/'||temat
	
RETURN wynik;

END; 

$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

Chodzi o to, że wynik pierwszego zapytania to są częściowo kolumny tabeli Opisy. Chodzi mi o to, że on wstawia do zapytania przy wynik wartość jako tekst, a ja potrzebuję, żeby on potraktował to jako kolumny (nie interesuje mnie czy one tam będą istnieć czy nie, bo najwyżej błąd wywali), a zapytanie wynik miało ostatecznie postać:

select kod1||'/'||opis||'/'||temat from test.opisy limit 1

I jeszcze może pytanie: Czy da się w jakiś sposób zrzutować grupę kolumn zapisaną jako tekst, żeby potraktowało je jako kolumny?

1 użytkowników online, w tym zalogowanych: 0, gości: 1