1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

SQL, wie kann man in Tabellen column_name suchen und value bekommen?

Dieses Thema im Forum "Oracle" wurde erstellt von canberkcelik, 14 Mai 2019.

  1. canberkcelik

    canberkcelik Benutzer

    Hallo Leute,

    Ich habe eine Tabelle mit KW. Ich will die Werte von zwischen 2 column_namen. Ich nutze 2 dropdown für column_namen. Ich habe schon versucht(siehe unten) aber leider nicht geschäft. Kann mir jemand bitte helfen? Danke


    COLUMN_NAME: 01,02,03,04,...,51,52,53


    SELECT LISTAGG(COLUMN_NAME, ', ') WITHIN GROUP (ORDER BY COLUMN_ID)
    from ALL_TAB_COLUMNS
    WHERE TABLE_NAME = 'ALSI_TEST_DELETE' and COLUMN_NAME BETWEEN '01' AND '04'

    >>>Results: 01, 02, 03, 04 aber leider ohne WERTE, was da drin steht
     

    Anhänge:

    • DB.PNG
      DB.PNG
      Dateigröße:
      9,5 KB
      Aufrufe:
      2
  2. akretschmer

    akretschmer Datenbank-Guru

    Dazu müßtest Du einen SQL-String dynamisch basteln und ausführen, in PostgreSQL so: PostgreSQL: Documentation: 11: 43.5. Basic Statements

    Sinnvoller wäre aber ein besseres Tabellendesign. Hier z.B. Spalte für KW mit den Werten 1,2,3 etc. und einer Spalte mit den dazugehörigen Werten. Also keine 53 Spalten, sondern nur 2.
     
  3. canberkcelik

    canberkcelik Benutzer

    Ich habe leider ein Interactive Grid in Oracle Apex und ansicht muss so sein.
     
  4. canberkcelik

    canberkcelik Benutzer


    soll ich EXECUTE or EXECUTE format nutzen? Kannst du bitte ein beispiel eingeben?
     
  5. akretschmer

    akretschmer Datenbank-Guru

    ach was.

    Code:
    test=# create table canberkcelik (id serial primary key, kw int, val int);
    CREATE TABLE
    test=*# insert into canberkcelik select s, s, random()*100 from generate_series(1,5) s;
    INSERT 0 5
    test=*# create view view_canberkcelik as select sum(val) filter (where kw = 1) as kw1, sum(val) filter (where kw = 2) as kw2, sum(val) filter (where kw = 3) as kw3, sum(val) filter (where kw=4) as kw4, sum(val) filter (where kw=5) as kw5 from canberkcelik;
    CREATE VIEW
    test=*# select * from view_canberkcelik;
     kw1 | kw2 | kw3 | kw4 | kw5
    -----+-----+-----+-----+-----
       9 |  74 |   4 |   0 |  87
    (1 row)
    
    test=*# select * from canberkcelik where kw between 2 and 4;
     id | kw | val
    ----+----+-----
      2 |  2 |  74
      3 |  3 |   4
      4 |  4 |   0
    (3 rows)
    
    test=*#
    
    
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Schlecht. Habe kein Ora.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden