Вообще-то их нет. Да, можно написать функцию на С или Python, и зарегистрировать в SQLite. Но не прямо в SQL.
Но все меняется, если подключить расширение
define! С ним можно писать функции на чистом SQL.С
define несложно определить собственную функцию:select define('sumn', ':n * (:n + 1) / 2');А затем использовать, как будто встроенную:
> select sumn(5);
15
Пользовательские функции могут принимать несколько параметров и вызывать другие функции.
Сгенерировать случайное N, такое что a ≤ N ≤ b:
> select define('randint', ':a + abs(random()) % (:b - :a + 1)');
> select randint(10, 99);
42Можно даже задать функцию, которая возвращает несколько значений!
Подробности в документации