sql >> Database >  >> RDS >> Mysql

mysql/orakel opgeslagen wiskundige formule

Ik denk dat wat je zegt is dat je wilt dat de database de formulestring ontleden. Voor Oracle kunt u bijvoorbeeld

  • Voeg een kolom toe aan de tabel om het resultaat te bevatten
  • Voer een update-instructie uit die een PL/SQL-functie zou aanroepen met de waarden van de kolommen in de tabel en de tekst van de formule

    update {table} set formula_result =fn_calc_result (col1, col2, formule_column);

De PL/SQL-functie zou een string creëren door de "col1" en "col2" enzovoort te vervangen door de werkelijke waarden van die kolommen. Dat kan met reguliere expressies, zolang de formules maar consistent worden geschreven.

Gebruik dan

execute immediate 'select '||{formula}||' from dual' into v_return;
return v_return;

om het resultaat te berekenen en terug te sturen.

Je kunt natuurlijk ook je eigen parser schrijven. Als u besluit die kant op te gaan, vergeet dan niet om de voorrang van de bewerking, haakjes, enzovoort te hanteren.



  1. Hoe maak ik een CSV-bestand uit de database in Python?

  2. Sorteren in MySQL met behulp van volgorde op clausule

  3. hoe SQL-query's te schrijven?

  4. prestatie verbeteren voor LIKE-clausule