Unterstützt SQLite allgemeine Tabellenausdrücke?Unterstützt SQLite allgemeine Tabellenausdrücke?
Ich möchte Abfrage wie das auszuführen:
with temp (ID, Path)
as (
select ID, Path from Messages
) select * from temp
Unterstützt SQLite allgemeine Tabellenausdrücke?Unterstützt SQLite allgemeine Tabellenausdrücke?
Ich möchte Abfrage wie das auszuführen:
with temp (ID, Path)
as (
select ID, Path from Messages
) select * from temp
SQLite nicht unterstützt CTE, Fensterfunktionen oder irgendwelchen von dergleichen. Sie können jedoch eigene Benutzerfunktionen schreiben, die Sie in SQLite aufrufen können, indem Sie sie mithilfe der SQLite-API unter Verwendung von sqlite_create_function() bei der Datenbank registrieren. Sie registrieren sie in der Datenbank und können sie dann in Ihrem eigenen Anwendungscode verwenden. Sie können eine Aggregatfunktion erstellen, die die Summe einer Reihe von Durchschnittswerten basierend auf den einzelnen Spaltenwerten durchführt. Für jeden Wert wird eine Step-Callback-Funktion aufgerufen, mit der Sie eine Berechnung für die Daten durchführen können. Außerdem steht ein Zeiger für die Haltezustandsdaten zur Verfügung.
Danke für die Antwort – Andrei
Sqlite hat kürzlich Unterstützung für CTE hinzugefügt: http://www.sqlite.org/lang_with.html –
In Version 3.8.3 http://www.sqlite.org/releaselog/3_8_3.html – heneryville
Eine andere Lösung ist es, eine "CTE zu SQLite" Übersetzungsschicht in der Anwendung zu integrieren:
"mit W als (y) z" => "temp Ansicht erstellen w als y; z"
"mit w (x) (y) z" => "temp Tabelle erstellen w (x); einfügen in wy; z"
als (hässlich, desesperate, aber die Arbeit) Beispiel: http://nbviewer.ipython.org/github/stonebig/baresql/blob/master/examples/baresql_with_cte_code_included.ipynb
Nein leider aber es könnte eine Alternative sein, was Sie den CTE benötigen, so können Sie das näher erläutern? – bendataclear
Was ist das eigentliche Problem, das Sie versuchen zu lösen? –