Mathematische Vorgänge in Abfragen verwenden
Lernen Sie die in Oracle NoSQL Database Cloud Service unterstützten mathematischen Funktionen kennen.
Die mathematischen Funktionen werden verwendet, um mathematische Berechnungen für die Eingabeargumente durchzuführen. Hier sind die angegebenen Argumente Ausdrücke, die in Zahlen aufgelöst werden.
Sie können die mathematischen Funktionen aus den SELECT/WHERE-Klauseln und auch aus anderen Oracle NoSQL-Anweisungen aufrufen, in denen Funktionsaufrufe in der Syntax zulässig sind. Beispiel: Sie können mathematische Funktionen als Argumente für Verwenden von Aggregatfunktionen angeben.
Die folgenden Funktionen werden in Oracle NoSQL Database Cloud Service unterstützt:
Tabelle 1 - Mathematische Funktionen
| Funktion | Beschreibung |
|---|---|
| abs(n) | Gibt den absoluten Wert von n zurück. |
| acos(n) | Gibt den Arkuskosinus von n in Radiant zurück. |
| asin(n) | Gibt den Arkussinus von n in Radiant zurück. |
| atan(n) | Gibt den Arkustangens von n in Radiant ausgedrückt zurück. |
| atan2(n1,n2) | Gibt den Arkustangens der Argumente n1 und n2 in Radianten zurück. |
| Obergrenze(n) | Gibt die kleinste Ganzzahl zurück, die größer oder gleich n ist. |
| cos(n) | Gibt den Kosinus eines Winkels n zurück, der in Radianten angegeben ist. |
| Kinderbett(n) | Gibt den Cotangent eines Winkels n zurück, der in Radiant angegeben ist. |
| Grad(n) | Konvertiert n von den Radianten in Grad. |
| e() | Gibt den Wert der Euler-Nummer e zurück. |
| exp(n) | Gibt den exponentiellen Wert des Ausdrucks n zurück. |
| boden(n) | Gibt die größte Ganzzahl zurück, die kleiner oder gleich n ist. |
| ln(n) | Gibt den natürlichen logarithmischen Wert (Basis e) von n zurück. |
| log(n,b) | Gibt den logarithmischen Basiswert b von n zurück. |
| log10(n) | Gibt den logarithmischen Basiswert 10 von n zurück. |
| pi() | Gibt den Wert pi zurück. |
| Leistung(n2,n1) | Gibt den Wert n2 zurück, der an die Stromversorgung n1 angehoben wurde. |
| Radianten(n) | Konvertiert n von Grad in Radiant. |
| rand() | Gibt eine Pseudozufallszahl zwischen Null und Eins zurück. |
| rund(n [,d]) | Rundet n auf d Stellen rechts neben dem Dezimalzeichen. |
| Vorzeichen(n) | Gibt das Vorzeichen n zurück. |
| sin(n) | Gibt den Sinus eines Winkels n zurück, der in Radiant angegeben ist. |
| Wurzel(n) | Gibt die Quadratwurzel von n zurück. |
| tan(n) | Gibt den Tangenswert eines Winkels n zurück, der in Radianten angegeben ist. |
| trunc(n [,d]) | Gibt den Wert n zurück, der auf d Dezimalstellen abgeschnitten wurde. |
Hinweis:
-
Bei den mathematischen Funktionsnamen muss die Groß-/Kleinschreibung beachtet werden.
-
Alle mathematischen Funktionen erwarten numerische Typen (Ganzzahl, Lang, Gleitkommazahl, Doppel und Zahl) als Argumente. Diese Funktionen geben in den folgenden Fällen NULL zurück. Hierbei bezieht sich der NULL-Wert auf SQL NULL, sofern nichts anderes angegeben ist.
-
Jedes Argument wird in NULL aufgelöst.
-
Jedes Argument ist ein Feld in einer JSON-Spalte, dessen Wert NULL ist, d.h. JSON NULL.
-
Eines der Argumente ist ein Feld in einer JSON-Spalte, das nicht vorhanden ist.
-
Eines der Argumente ist ein Feld in der JSON-Sammlung, das nicht vorhanden ist.
-
Jedes Argument wird nicht als numerischer Typ aufgelöst.
-
-
Bei der Verwendung trigonometrischer Funktionen wie sin(n), cos(n) usw. müssen Sie den Eingabewert in Radianten angeben. Mit der Funktion radians(n) können Sie einen Winkel von Grad in Radiant umwandeln. In ähnlicher Weise können Sie für inverse trigonometrische Funktionen wie asin(n), acos(n) usw. den resultierenden Radianswert mit der Funktion degrees(n) in Grad konvertieren.
Um die Beispiele in den Abschnitten zu befolgen, können Sie die Tabellen erstellen und Daten laden, wie im Abschnitt Zusätzliche Beispiele beschrieben.
abs (Funktion)
Die Funktion abs gibt den absoluten Wert des Eingabeausdrucks zurück.
Beispiel 1 - abs-Funktion
SELECT abs(n) FROM Userstocks
| Wert von n | Ausgabe |
|---|---|
| 10 | 10 |
| -10 | 10 |
| 1,67 | 1,67 |
| -1,67 | 1,67 |
Ark-Kosinusfunktion
Die Funktion acos ist eine umgekehrte trigonometrische Funktion. Die Funktion acos gibt den Arkuskosinus (umgekehrt zum Kosinus) des Eingabeausdrucks zurück.
Beispiel 1 - Arc-Cosine-Funktion
SELECT acos(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| 1 | 0 |
| 0 | 1,571 |
| Quadratwurzel(3)/2 | 0,524 |
| 0,5 | 1,047 |
| -1 | 3,142 |
Sinusfunktion
Die Funktion asin ist eine umgekehrte trigonometrische Funktion. Die Funktion asin gibt den Arkussinus (inverse of sine) des Eingabeausdrucks zurück.
Beispiel 1 - Sinusfunktion
SELECT asin(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| 1 | 1,571 |
| Quadratwurzel(3)/2 | 1,047 |
| 0,5 | 0,524 |
| -1 | -1,571 |
Arc-Tan-Funktion
Die Funktion atan ist eine umgekehrte trigonometrische Funktion. Die Funktion atan gibt den Bogen-Tangens (inverse of tangent) des Eingabeausdrucks zurück.
Beispiel 1 - Bräunungsfunktion
SELECT atan(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| 1 | 0,785 |
| Quadratwurzel(3) | 1,047 |
Arc tan2-Funktion
Die Funktion atan2 ist eine umgekehrte trigonometrische Funktion. Die Funktion atan2 ist eine Zwei-Argument-Bogen-Tangensfunktion (inverse of tan), die den Bogen-Tangens einer Koordinate oder eines Punktes im zweidimensionalen Raum (n1, n2) zurückgibt, der als atan(n2/n1) berechnet wird.
Beispiel 1 - Funktion arc tan2
SELECT atan2(n1,n2) FROM Archery
| Wert von n1 | Wert von n2 | Ausgabe |
|---|---|---|
| 1 | 1 | 0,785 |
| 1 | Quadratwurzel(3) | 1,047 |
| 2 | 0 | 1,571 |
Ceil-Funktion
Die Funktion ceil gibt die kleinste Ganzzahl zurück, die größer oder gleich dem angegebenen Ausdruck ist.
Beispiel 1 - ceil-Funktion
SELECT ceil(n) FROM Userstocks
| Wert von n | Ausgabe |
|---|---|
| 1,34 | 2 |
| -1,34 | -1 |
| pi() | 4 |
Kosinusfunktion
Die Funktion cos ist eine trigonometrische Funktion. Die Funktion cos gibt den Kosinus eines Winkels zurück, der in Radiant angegeben ist.
Beispiel 1 - Kosinusfunktion
SELECT cos(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| 0 | 1 |
| Radiant(90) | 6.123233995736766E-17 |
| pi() | -1 |
Cotangent-Funktion
Die Funktion cot ist eine trigonometrische Funktion. Die Funktion cot gibt den Cotangent eines Winkels zurück, der in Radiant angegeben ist.
Beispiel 1 - cotangent-Funktion
SELECT cot(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| 0 | Unendlichkeit |
| Radiant(90) | 6.123233995736766E-17 |
| pi()/4 | 1 |
Gradfunktion
Die Funktion degrees konvertiert den angegebenen Ausdruck von den Radianten in Grad.
Beispiel 1 - Grad-Funktion
SELECT degrees(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| pi()/2 | 90 |
| 0 | 0 |
Euler-Funktion
Die Funktion e gibt den Wert der Euler-Nummer e zurück, d.h. 2.718281828459045.
Beispiel 1 - Euler-Funktion
SELECT e() AS EULER FROM Archery
Ausgabe:
+-----------+-------------------+
| EULER | 2.718281828459045 |
+-----------+-------------------+
Exp-Funktion
Die Funktion exp gibt den exponentiellen Wert des angegebenen Ausdrucks zurück, d.h. e, der an die Potenz des angegebenen Ausdrucks angehoben wurde. Hier ist e die Basis des natürlichen Logarithmus und hat den Wert 2.718281828459045.
Beispiel 1 - exp-Funktion
SELECT exp(n) FROM PHtable
| Wert von n | Ausgabe |
|---|---|
| 0 | 1 |
| 2 | 7,389 |
| -2 | 0,135 |
Bodenfunktion
Die Funktion floor gibt die größte Ganzzahl kleiner als oder gleich dem angegebenen Ausdruck zurück.
Beispiel 1 - Bodenfunktion
SELECT floor(n) FROM Userstocks
| Wert von n | Ausgabe |
|---|---|
| 1,34 | 1 |
| -1,34 | -2 |
| pi() | 3 |
LN-Funktion
Die Funktion ln gibt den natürlichen logarithmischen Wert (Basis e) des angegebenen Ausdrucks zurück.
Beispiel 1 - LN-Funktion
SELECT ln(n) FROM PHtable
| Wert von n | Ausgabe |
|---|---|
| 1 | 0 |
| 10 | 2,303 |
| 1.0E-7 | -16,118 |
Logfunktion
Die Funktion log gibt den logarithmischen Wert mit der angegebenen Basis für den angegebenen Ausdruck zurück.
Beispiel 1 - Protokollfunktion
SELECT log(n,b) FROM PHtable
| Wert von n | Wert von b | Ausgabe |
|---|---|---|
| 2 | 2 | 1 |
| 81 | 3 | 4 |
| 255 | 5 | 3,443 |
log10-Funktion
Die Funktion log10 gibt den logarithmischen Wert mit Basis 10 für den angegebenen Ausdruck zurück.
Beispiel 1 - log10-Funktion
SELECT log10(n) FROM PHtable
| Wert von n | Ausgabe |
|---|---|
| 1 | 0 |
| 10 | 1 |
| 1.0E-7 | -7 |
Pi-Funktion
Die Funktion pi gibt den Wert von "pi" zurück, das heißt 3.141592653589793.
Beispiel 1 - pi-Funktion
SELECT pi() AS PI FROM Archery
Ausgabe:
+-----------+-------------------+
| PI | 3.141592653589793 |
+-----------+-------------------+
Leistungsfunktion
Die Funktion pow gibt den Wert des ersten Ausdrucks zurück, der an die Macht des zweiten Ausdrucks angehoben wurde.
Beispiel 1 - Leistungsfunktion
SELECT pow(n2,n1) FROM PHtable
| Wert von n | Wert von b | Ausgabe |
|---|---|---|
| 2 | 4 | 16 |
| 2 | 0 | 1 |
| -0,5 | 4 | 0,062 |
| 0,5 | -4 | 16 |
Radians-Funktion
Die Funktion radians konvertiert den angegebenen Ausdruck von Grad in Radianten.
Beispiel 1 - Radienfunktion
SELECT radians(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| 180 | 3,142 |
| 0 | 0 |
Zufallsfunktion
Die Funktion rand gibt eine positive Pseudozufallszahl zurück. Der resultierende Wert kann größer als oder gleich null und kleiner als eins sein.
Beispiel 1 - Zufallsfunktion
SELECT rand() AS RANDOM from Archery WHERE sim=1
Ausgabe:
+-----------+-------------------+
| RANDOM | 0.891655403699787 |
+-----------+-------------------+
Rundungsfunktion
Die Funktion round rundet den Wert eines Eingabeausdrucks auf die angegebenen Dezimalstellen rechts neben dem Dezimalzeichen.
Beispiel 1 - runde Funktion
SELECT round(n,d) FROM Userstocks
| Wert von n | Wert von d | Ausgabe |
|---|---|---|
| 100,331 | 2 | 100,33 |
| 100,367 | 2 | 100,37 |
| 111,567 | 0,5 | 112 |
| 111,567 | 4 | 111,567 |
| 10,361 | 0 oder nicht angegeben | 10 |
| 111,331 | -2 | 100 |
| 111,331 | -4 | 0 |
| -100,331 | 2 | -100,33 |
| -111,331 | -2 | -100 |
Zeichenfunktion
Die Funktion sign gibt das Vorzeichen des angegebenen Ausdrucks zurück, d.h. Null, wenn das Argument Null ist, 1, wenn das Argument größer als Null ist, und -1, wenn das Argument kleiner als Null ist.
Beispiel 1 - Zeichenfunktion
SELECT sign(n) FROM PHtable
| Wert von n | Ausgabe |
|---|---|
| 1,89 | 1 |
| -1,89 | -1 |
| 0 | 0 |
| sin(3*pi()/2) | -1 |
Sinusfunktion
Die Funktion sin ist eine trigonometrische Funktion. Die Funktion sin gibt den Sinus eines Winkels zurück, der in Radiant angegeben ist.
Beispiel 1 - Sinusfunktion
SELECT sin(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| Radiant(90) | 1 |
| pi()/4 | 0,707 |
| 3*pi()/2 | -1 |
Quadratwurzelfunktion
Die Funktion sqrt gibt die Quadratwurzel des angegebenen Ausdrucks zurück.
Beispiel 1 - Quadratwurzelfunktion
SELECT sqrt(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| 16 | 4 |
| 12.57/pi() | 2 |
Tangensfunktion
Die Funktion tan ist eine trigonometrische Funktion. Die Funktion tan gibt den Tangens eines Winkels zurück, der in Radianten angegeben ist.
Beispiel 1 - Tangensfunktion
SELECT tan(n) FROM Archery
| Wert von n | Ausgabe |
|---|---|
| 0 | 0 |
| Radiant(90) | 1.633123935319537E16 |
| pi()/4 | 1 |
Truncate-Funktion
Die Funktion trunc schneidet den Wert eines Eingabeausdrucks auf die angegebenen Dezimalstellen rechts neben dem Dezimalzeichen ab.
Beispiel 1 - Funktion abschneiden
SELECT trunc(n,d) FROM Userstocks
| Wert von n | Wert von d | Ausgabe |
|---|---|---|
| 111,567 | 0 oder nicht angegeben | 100 |
| 111,567 | 2 | 100,56 |
| 111,567 | 3 | 111,567 |
| 111,567 | -2 | 100 |
| 111,567 | -3 | 0 |
| -111,567 | 2 | -100,567 |
| -111,567 | -1 | -110 |
Beispiele für die Verwendung der QueryRequest-API
Sie können die API QueryRequest verwenden und SQL-Funktionen anwenden, um Daten aus einer NoSQL-Tabelle abzurufen, die Timestamp-Funktionen und String-Funktionen ähnelt.
Die folgenden Code-Snippets zeigen, wie mathematische Funktionen zum Abfragen der Tabelle Userstocks verwendet werden.
Zum Ausführen der Abfrage verwenden Sie die NoSQLHandle.query()-API.
String queryStatement =
"SELECT stock, " +
"ceil(units * sellRate - units * buyRate) AS PROFIT, " +
"abs(units * sellRate - units * buyRate) AS TURNOVER, " +
"round(abs(units * sellRate - units * buyRate) * 0.5 / 100, 2) " +
"AS BROKERAGE " +
"FROM Userstocks";
try (QueryRequest request =
new QueryRequest().setStatement(queryStatement);
QueryIterableResult results = handle.queryIterable(request)) {
for (MapValue row : results) {
System.out.println(row);
}
}
Um die Abfrage auszuführen, verwenden Sie die Methode borneo.NoSQLHandle.query().
query_statement = '''
SELECT stock,
ceil(units * sellRate - units * buyRate) AS PROFIT,
abs(units * sellRate - units * buyRate) AS TURNOVER,
round(
abs(units * sellRate - units * buyRate) * 0.5 / 100,
2
) AS BROKERAGE
FROM Userstocks
'''
request = QueryRequest().set_statement(query_statement)
while True:
result = handle.query(request)
for row in result.get_results():
print(row)
if request.is_done():
break
Um eine Abfrage auszuführen, verwenden Sie die Funktion Client.Query.
queryStatement := `
SELECT stock,
ceil(units * sellRate - units * buyRate) AS PROFIT,
abs(units * sellRate - units * buyRate) AS TURNOVER,
round(
abs(units * sellRate - units * buyRate) * 0.5 / 100,
2
) AS BROKERAGE
FROM Userstocks`
prepareRequest := &nosqldb.PrepareRequest{
Statement: queryStatement,
}
prepareResult, err := client.Prepare(prepareRequest)
if err != nil {
fmt.Println("Prepare failed:", err)
return
}
queryRequest := &nosqldb.QueryRequest{
PreparedStatement: &prepareResult.PreparedStatement,
}
for {
queryResult, err := client.Query(queryRequest)
if err != nil {
fmt.Println("Query failed:", err)
return
}
rows, err := queryResult.GetResults()
if err != nil {
fmt.Println("Unable to get results:", err)
return
}
for _, row := range rows {
fmt.Println(jsonutil.AsJSON(row.Map()))
}
if queryRequest.IsDone() {
break
}
}
Um eine Abfrage auszuführen, verwenden Sie die Methode query.
const queryStatement = `
SELECT stock,
ceil(units * sellRate - units * buyRate) AS PROFIT,
abs(units * sellRate - units * buyRate) AS TURNOVER,
round(
abs(units * sellRate - units * buyRate) * 0.5 / 100,
2
) AS BROKERAGE
FROM Userstocks`;
const options = {};
do {
const result = await handle.query(queryStatement, options);
for (const row of result.rows) {
console.log(row);
}
options.continuationKey = result.continuationKey;
} while (options.continuationKey);
Um eine Abfrage auszuführen, können Sie die Methode QueryAsync aufrufen oder die Methode GetQueryAsyncEnumerable aufrufen und über die resultierende asynchrone aufzählbare Methode iterieren.
private const string QueryStatement = @"
SELECT stock,
ceil(units * sellRate - units * buyRate) AS PROFIT,
abs(units * sellRate - units * buyRate) AS TURNOVER,
round(
abs(units * sellRate - units * buyRate) * 0.5 / 100,
2
) AS BROKERAGE
FROM Userstocks";
var queryEnumerable =
client.GetQueryAsyncEnumerable(QueryStatement);
await foreach (var result in queryEnumerable)
{
foreach (var row in result.Rows)
{
Console.WriteLine(row.ToJsonString());
}
}
Weitere Beispiele
Lernen Sie, mathematische Funktionen in Anwendungen zu verwenden.
Beispiel 1 - Mathematische Funktionen zum Abrufen von Intraday-Transaktionen aus einer Handelsanwendung anwenden
Betrachten Sie eine Tabelle Userstocks, die Intraday-Transaktionen eines Aktienhändlers in einer Handelsanwendung enthält.
Die Tabellen-DDL lautet wie folgt:
CREATE TABLE Userstocks (id INTEGER,
stock STRING,
units INTEGER,
buyRate DOUBLE,
sellRate DOUBLE,
PRIMARY KEY (id))
Das Feld id enthält die ID des Unternehmens, das Feld stock enthält den Firmennamen, in dem der Benutzer Aktienoptionen hat, das Feld units enthält die Anzahl der Aktien, die dem Benutzer gehören, buyRate ist der Preis, zu dem der Benutzer die Aktien gekauft hat, und sellRate ist der Preis, zu dem der Benutzer seine Aktien verkauft.
Beispielzeilen in die Tabelle einfügen:
INSERT into Userstocks VALUES (1, "company1", 100, 10.2, 11.5)
INSERT into Userstocks VALUES (2, "company2", 20, 15, 14.7)
Mit der folgenden Abfrage können Sie mathematische Funktionen anwenden und die erforderlichen Transaktionsdetails aus der Tabelle abrufen:
SELECT stock,
ceil(units*sellRate-units*buyRate) AS PROFIT,
abs(units*sellRate-units*buyRate) AS TURNOVER,
round(abs(units*sellRate-units*buyRate)*0.5/100, 2) AS BROKERAGE
FROM Userstocks
Erläuterung: In der obigen Abfrage rufen Sie die Umsatz-, Gewinn-/Verlust- und Maklergebühren des Tages ab. Sie berechnen den Gewinn/Verlust mit den angegebenen arithmetischen Ausdrücken und wenden die ceil-Funktion an, um das Ergebnis als nächsten Ganzzahlwert abzurufen. Sie berechnen den Gewinn/Verlust und wenden die Registerkartenfunktion an, um den Umsatz für jede Transaktion zu berechnen. Sie berechnen die Maklergebühren, indem Sie 0,5% auf jeden Umsatz anwenden und das Ergebnis mit der Rundungsfunktion auf zwei Dezimalstellen runden.
Ausgabe:
{"stock":"company2","PROFIT":-6.0,"TURNOVER":6.0,"BROKERAGE":0.03}
{"stock":"company1","PROFIT":131.0,"TURNOVER":130.0000000000001,"BROKERAGE":0.65}
Beispiel 2 - Anwendung mathematischer Funktionen zur Berechnung des Schießabstands in einer Spieleanwendung
Betrachten Sie eine Archery-Tabelle mit Daten für die Zielaufnahme in einer Spieleanwendung.
Die Tabellen-DDL lautet wie folgt:
CREATE TABLE Archery (sim INTEGER,
angle DOUBLE,
elevation DOUBLE,
PRIMARY KEY (sim) )
Das Sim-Feld identifiziert die Simulationsanzahl. Das Feld angle enthält verschiedene Winkel (in Grad), in denen ein Spieler auf ein Ziel zielen kann. Das Feld elevation enthält die Höhe (in Metern), in der das Ziel platziert wird.
Beispielzeilen in die Tabelle einfügen:
INSERT INTO Archery VALUES (1, 30, 50)
INSERT INTO Archery VALUES (2, 45, 50)
INSERT INTO Archery VALUES (3, 70, 95)
Sie können mathematische Funktionen in der folgenden Abfrage anwenden, um den Aufnahmeabstand für verschiedene Winkel und Höhen des Ziels zu berechnen.
SELECT sim, trunc(elevation/sin(radians(angle)),2) AS SLOPE FROM Archery ORDER BY
sim
Erläuterung: Um ein Ziel zu treffen, das auf einer bestimmten Höhe platziert ist, zielt der Spieler auf einen Winkel und schießt eine bestimmte Entfernung. Diese Elemente bilden eine Seite eines rechtwinkligen Dreiecks, einen spitzen Winkel und eine Hypotenuse. In dieser Abfrage berechnen Sie den Aufnahmeabstand für verschiedene Kombinationen von Zielhöhe und -winkeln basierend auf der Position des Spielers vom Ziel. Mit der Radians-Funktion konvertieren Sie die Winkel in Radiant und berechnen den Sinuswert mit der sine-Funktion. Sie teilen die Höhe durch den Sinuswert, um den Abstand zu berechnen und das Ergebnis mit der Funktion "truncate" auf zwei Dezimalstellen zu kürzen.
Ausgabe:
{"sim":1,"SLOPE ":100.0}
{"sim":2,"SLOPE ":70.71}
{"sim":3,"SLOPE ":101.09}
Beispiel 3 - Verwenden Sie die mathematischen Funktionen, um den PH-Wert für eine bestimmte Lösung zu berechnen
Betrachten Sie eine PHtable, die Wasserstoffionenkonzentration für verschiedene Lösungen enthält.
Die Tabellen-DDL lautet wie folgt:
CREATE TABLE PHtable (id INTEGER,
sampleName STRING,
hIons DOUBLE,
phValue DOUBLE,
PRIMARY KEY (id) )
Das Feld id enthält die ID der Lösungsprobe, das Feld sampleName enthält den Namen der angegebenen Probe, das Feld hIons ist die Wasserstoffionenkonzentration in Mol pro Liter der Flüssigkeit und das Feld phValue ist der PH-Wert der Lösung. Sie können den Wert hIons verwenden, um die phValue einer Lösung zu berechnen. Sie initialisieren die Spalte phValue auf NULL, während Sie Daten in die Tabelle einfügen.
Beispielzeilen in die Tabelle einfügen:
INSERT INTO PHtable VALUES (1, "sample1", 0.0063095734448019, NULL)
INSERT INTO PHtable VALUES (2, "sample2", 5.0118723362727E-9, NULL)
INSERT INTO PHtable VALUES (3, "sample3", 1.0E-7, NULL)
Mit den mathematischen Funktionen können Sie den PH-Wert für eine bestimmte Lösung berechnen und die Tabelle mit der folgenden Abfrage aktualisieren:
UPDATE PHtable SET phValue=trunc((log10(1/hIons)),1) where id=1 RETURNING
*
Erläuterung: Der PH-Wert gibt die Stärke von Säuren oder Basen in einer Lösung an. In dieser Abfrage verwenden Sie die Funktion log10, um den PH-Wert einer Lösung mit der Formel PH=log10(1/hIons) zu berechnen. Da der Rückgabewert der Funktion doppelt ist, verwenden Sie die Truncate-Funktion, um das Ergebnis auf eine Dezimalstelle zu kürzen. Mit der UPDATE-Anweisung legen Sie den resultierenden PH-Wert im Feld phValue für die angegebene Lösung fest.
Ausgabe:
{"id":1,"sampleName":"sample1","hIons":0.0063095734448019,"phValue":2.2}
Sie können auch die mathematischen Funktionen in der WHERE-Klausel verwenden. In diesem Beispiel finden Sie die sauren Proben (PH < 7) mit der folgenden Abfrage:
SELECT sampleName AS ACIDIC FROM PHtable WHERE trunc((log10(1/hIons)),1) <
7.0
Ausgabe:
{"ACIDIC":"sample1"}