Was kommt hierbei raus?
Code: Alles auswählen
SELECT
CAST(IIF(b > 0, CAST(a AS FLOAT)/ b, NULL) AS FLOAT) AS c
FROM t1
ORDER BY b ASC
EDIT: Btw: Wie bewandert bist du mit SQLite resp. SQL im allgemeinen?
Gezeigte Abfrage sieht mir nach nem Kandidaten für "generated Columns" aus (HINWEIS HINWEIS HINWEIS!!

)
Code: Alles auswählen
CREATE TABLE T1 (
a int,
b int,
c float generated always as (iif(b>0,cast(a as float)/b,NULL)) virtual
)
statt "virtual" kann man auch "stored" nehmen (wäre vielleicht sogar sinnvoller).
Unterschied:
mit "virtual" wird kein Speicher in Anspruch genommen, da c jedesmal bei Aufruf neu berechnet wird.
"stored" braucht Speicher, da die Berechnung von Spalte c bei INSERT/UPDATE statt findet.
Ist am Ende auch eine Performance-Frage (welche am Ende auch nur ihr selbst beantworten könnt).
Macht ihr ein SELECT-Statement, was jedesmal 1 Million Zeilen zurückgibt, wird bei "virtual" auch 1 Million mal Spalte c neu berechnet.
habt ihr "stored" wird c eben nur einmal beim INSERT/jedesmal bei UPDATE neu berechnet.
Und bei "stored" ist dann c wie ne "handelsübliche" Spalte
ist mMn nen test wert, weil wenn ich mich recht entsinne, legt FPC den DatenTyp eines Fields anhand der empfangenen Meta-Daten fest (irgendwas bei direkten CASTS in SELECT-Statements lauft nicht richtig)