Lassen Sie uns einen Testfall erstellen:
CREATE TABLE tab1(
col1 DECIMAL(10,2),
col2 DECIMAL(10,2),
col3 DECIMAL(10,2),
col4 VARCHAR(250)
);
INSERT INTO tab1 VALUES (1.0, 1.0, 4.0, "1.00*1.00*4.00")
Wenn Sie den Ausdruck von Spalten bauen oder auch das Bestehen der Zeichenfolge ist es ganz einfach:
SELECT col1 * col2 * col3 AS from_field,
1.00*1.00*4.00 AS from_string
FROM tab1;
Wenn der Wert auf einer Spalte gespeichert wird Sie müssen es programmatisch tun, hier ist ein Beispiel für eine SPL:
CREATE FUNCTION get_eval()
RETURNING DECIMAL(10,2) AS eval;
DEFINE stmt VARCHAR(250);
DEFINE eval_str VARCHAR(250);
DEFINE eval_dec DECIMAL(10,2);
FOREACH cur FOR
SELECT col4
INTO eval_str
FROM tab1
LET stmt = "SELECT " || eval_str || " as eval FROM sysmaster:sysdual INTO TEMP tmp_eval WITH NO LOG;";
EXECUTE IMMEDIATE stmt;
END FOREACH
FOREACH eval FOR
SELECT eval
INTO eval_dec
FROM tmp_eval
RETURN eval_dec WITH RESUME;
END FOREACH
DROP TABLE tmp_eval;
END FUNCTION;
EXECUTE FUNCTION get_eval();
Hallo Dominik, hast du versucht, die zu lesen manuell? –
Hallo, sicher, aber ich habe nicht den richtigen Platz in der Bedienungsanleitung gefunden. Kannst du mir einen Hinweis geben? – Dominik00000
Ich habe das gefragt, weil es Ihrer Frage an der grundlegenden Aussage über den Forschungsaufwand fehlte, den Sie zeigen sollten, wenn Sie hier fragen. Nachdem ich die Frage erneut gelesen habe, finde ich es etwas schwierig, das zu tun, was Sie erwarten. Es könnte einfacher sein, Daten in Excel zu importieren und dort zu berechnen ... oder wenn jemand großzügig genug ist, Ihnen den Code dafür zu geben? Das wäre in der Tat großzügig. –