SQLite fonction pour formater les nombres avec des zéros à gauche?

J'ai une base de données SQLite qui devra contenir des produits. Ces produits ont un format fixe composite numéro de produit, composé de la catégorie, le groupe et le numéro de produit (cccccc.gg.ppp). Chaque fois qu'un nouveau produit est inséré, le nouveau numéro de produit devrait être construit à l'aide de la catégorie et les numéros de groupe, suivi par le plus grand nombre de produit dans ce groupe incrémenté de un.

À cette fin, je pensais le stockage de tous les trois chiffres dans des champs distincts, et d'utiliser une vue à assembler dynamiquement le numéro de produit. Pour que cela fonctionne, j'aurais besoin d'ajouter des zéros à gauche, depuis le numéro de produit format est fixe.

Cependant, je n'arrive pas à trouver un construit-dans SQLite fonction qui serait de les laisser me faire cela... 🙁

Je préfère ne pas écrire une fonction personnalisée, car nous pourrions avoir à partager la base de données avec d'autres développeurs, pour leur lire des données à partir d'; et je n'ai aucune idée de ce que plate-forme ou de la langue qu'ils vont utiliser.

Cela peut-il être fait? Ou nous faudra trouver une autre solution?

  • En plus de la réponse directe à votre question de @9000, réfléchir pour savoir si la catégorie, le groupe, et les numéros de produit ne devrait pas être stockés en tant que texte.
  • Pourquoi devraient-ils être stockés en tant que texte vs comme chiffres? (En particulier le numéro de produit, car j'ai besoin d'obtenir sa valeur maximale + 1 pour le prochain numéro de produit).
  • Texte préserve les zéros à gauche. Il y a quelque chose à dire pour le stockage "000123" lors de votre exigence est de stocker de l' "000123".
  • ce n'est pas la question. J'ai besoin d'obtenir la valeur suivante; ce qui signifie avoir à disposition en nombre, et de conversion que pour un zéro de préfixe de la chaîne. Comment elle est stockée est une question séparée entièrement.
  • Vous pouvez convertir des chaînes en nombres de faire de l'arithmétique sur eux. Voir sqlite.org/lang_expr.html#castexpr
InformationsquelleAutor Martijn | 2011-02-04