10
votes

Comment émuler répéter () dans SQLite

La plupart des bases de données relationnelles ont une sorte de répéter () la fonction de chaîne, par exemple: xxx

produirait xxx

SQLite d'autre part a un ensemble de fonctionnalités très limitée. Les fonctions prises en charge par SQLite sont répertoriées ici:

http://www.sqlite.org /lang_corefunc.html

peut répéter () être émulé avec les fonctions disponibles dans SQLite?


0 commentaires

4 Réponses :



4
votes

Une version simplifiée de la solution de @Lukas Eder à l'aide de HEX () au lieu de citation:

-- X = string
-- Y = number of repetitions

replace(hex(zeroblob(Y)), '00', X) 


0 commentaires

5
votes

Si c'est un seul caractère unique vous souhaitez répéter, vous pouvez utiliser la fonction printf .

ci-dessous est un exemple où * est répété 10 fois. xxx

Pour répéter plusieurs caractères, veuillez consulter la réponse de Lukas ci-dessus.


0 commentaires

2
votes

Ma réponse combine ShipLu Mokaddim's " Substitution de caractères Printf " avec le" Remplacer "de Steve Broberg et Lukas eder : xxx

Il est également facile de dériver le nombre de répétitions de la table Les données. Voici un exemple utilisant une expression de table commune: xxx


2 commentaires

J'ai comparé votre approche et comparé avec le zeroblob approche. Le vôtre semble être légèrement plus rapide sur SQLite 3.30.1 via JDBC


N.b. L'approche de remplacement utilise moins d'opcodes (10) VS Printf (14).