Avatar billede d_warma Nybegynder
11. april 2005 - 17:42 Der er 5 kommentarer

Kolonnenavn i data

Hej,

Jeg har en opslagstabel, som ser således ud (opslagstabel):
Field, Value, Lookup_value
a, 1, 0-5
a, 2, 0-5
a, 5, 0-5
a, 6, 6-10
b, 5, 0-20
b, 35, 30-80

Så har jeg en masse data som ligger i en anden tabel (datatabel):
ID, a, b
1, 1, 5
2, 6, 35

Det kunne jeg godt tænke mig at få kædet sammen så jeg havde mulighed for at slå kombinationen ID+kolonnenavn fra datatabellen op i opslagstabellen og så returnere lookup_value:

ID, lookup_value(a), lookup_value(b)
1, 0-5, 0-20
2, 6-10, 30-80

Jeg tror det kan løses, hvis jeg kan få kolonnenavnet ud i en select sætning:

select ID, Lookup_value(a)
from  datatabel d, lookup_tabel l
where  d.(kolonnenavn(a))=l.field
and    d.a=l.value

Hvis der er en nemmere måde at gøre dette på uden at anvende CASE WHEN (der er nemlig 50 variable), er jeg meget lydhør.

Mvh
D_Warma
Avatar billede d_warma Nybegynder
11. april 2005 - 17:45 #1
Problemet er, at jeg ikke ved hvordan jeg får kolonnenavnet ned i datasættet??
Avatar billede charlie37 Nybegynder
13. maj 2005 - 09:55 #2
Sådan kan du finde de forskellige kolonnenavne:

select column_name from user_tab_columns where table_name = 'DATATABEL' and column_name <> 'ID';
Avatar billede charlie37 Nybegynder
13. maj 2005 - 10:03 #3
Desuden vil jeg anbefale at benytte DECODE() funktionen virker på følgende måde

DECODE( FIELD, 'A', 'Vaerdi1',
              'B', 'Vaerdi2',
                    'Default' )

hvis A så værdi1, hvis B så værdi2, ellers default...
default kan undværes, og det behøves ikke være konstanter !
Avatar billede qualjyn Nybegynder
12. juli 2005 - 13:25 #4
d_warma, kan du ikke overtales til at give link til create scriptet for tabellerne, og eventuelt et eksempel på resultatsættet - hvis det stadig er relevant :)
Avatar billede qualjyn Nybegynder
26. juli 2005 - 09:51 #5
d_warma - virkede det? Hvis ja, kan du så ikke give rfkint hans point, eller spørge videre, så vi kan hjælpe...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester