Oracle-SQL Trick zum Selektieren einer Spalte im Where

baeri

Erfahrenes Mitglied
Hallo Zusammen,

ich habe eine Tabelle welche etwa so aufgebaut ist
ID, Beschreibung, WERT_001, WERT_002 .. WERT_100, TIMESTAMP

nun möchte ich IM WHERE selektieren welche Spalte ich ausgeben möchte

Idealerweise

SELECT ID, Beschreibung,
CASE irgendwas ... WERT_..., --hier darf gern sehr sehr viel SQL stehen
TIMESTAMP
WHERE 1=1
AND ~irgendwas~ = 34

dann gibt er mir die WERT-Spalte 34 Zurück...

geht sowas?

Vielen Dank
 
meine Idee ist ein UNPIVOT und dann einfach mit Zeilen anstelle von Spalten zu arbeiten...
=> allerdings habe ich hier performanceprobleme...
 
Im WHERE macht keinen Sinn.
Nunja, du kannst einen gigantischen UNION machen und dann im WHERE auswerten.
Schön ist das nicht. Du solltest diene Datenstruktur ändern

SQL:
with normalized_data as (
	select id, wert_001 as value, 1 as value_id from my_table
	union select id, wert_002 as value, 2 as value_id from my_table
	union select id, wert_003 as value, 3 as value_id from my_table
	...
	union select id, wert_100 as value, 100 as value_id from my_table
)
select
	t.id,
	t.timestamp,
	n.value,
	n.value_id
from
	normalized_data n,
	my_table t
where
	n.id = t.id
	and n.value_id = 34
 

Neue Beiträge

Zurück