Czy SQLite obsługuje typowe wyrażenia tabelowe?Czy SQLite obsługuje typowe wyrażenia tabelowe?
Chciałbym uruchomić kwerendę tak:
with temp (ID, Path)
as (
select ID, Path from Messages
) select * from temp
Czy SQLite obsługuje typowe wyrażenia tabelowe?Czy SQLite obsługuje typowe wyrażenia tabelowe?
Chciałbym uruchomić kwerendę tak:
with temp (ID, Path)
as (
select ID, Path from Messages
) select * from temp
SQLite nie obsługuje współczynniki CTE, funkcje okien, lub którykolwiek z niczym. Można jednak pisać własne funkcje użytkownika, które można wywoływać wewnątrz SQLite, rejestrując je w bazie danych za pomocą interfejsu API SQLite za pomocą sqlite_create_function(). Rejestrujesz je w bazie danych, a następnie możesz używać ich we własnym kodzie aplikacji. Możesz utworzyć funkcję agregującą, która wykona sumę szeregu średnich na podstawie poszczególnych wartości kolumn. Dla każdej wartości wywoływana jest funkcja zwrotna typu krokowego, która pozwala wykonać pewne obliczenia na danych, a wskaźnik do przechowywania danych stanu jest również dostępny.
Dzięki za odpowiedź – Andrei
Sqlite dodała ostatnio wsparcie dla CTE: http://www.sqlite.org/lang_with.html –
W wersji 3.8.3 http://www.sqlite.org/releaselog/3_8_3.html – heneryville
Innym rozwiązaniem jest integracja "CTE do SQLite" warstwę translacji w aplikacji:
"o szer jako (y) z" => "Utwórz widok temp w jak Y, Z"
"w (x), (y) z" => "tworzenie tabeli temp w (x); wstawić WY; z"
jako (brzydki desesperate, ale pracuje) przykład: http://nbviewer.ipython.org/github/stonebig/baresql/blob/master/examples/baresql_with_cte_code_included.ipynb
No niestety jednak nie może być alternatywą dla czego potrzebujemy CTE, możesz rozwinąć? – bendataclear
Jaki jest faktyczny problem, który próbujesz rozwiązać? –