Comment ajouter des espaces dans des données lorsque la longueur des données est inconnue? p>
Lors de la sélection des données de caractères, j'essaie de caresser les données avec des espaces afin que la longueur de ce que je revienne est la même pour toutes les lignes. Par exemple, la longueur devrait rester 15 toujours. p>
Cela ira en fin de compte dans un rapport contenant toutes les colonnes de longueur fixes, de sorte que la taille des données renvoyées pour chaque champ doit être cohérente. P>
Il doit y avoir un rembourrage avec des espaces. P>
3 Réponses :
isnull([field],'')+SPACE(15-LEN(isnull([field],'')))
Ne faites que cela pour sélectionner la sortie, ne mettez pas à jour une colonne de table avec des espaces.
Veuillez également consulter Shawn Link au-dessus duquel utilise: laissé (isnull ([champ], '') + réplique ('', 15), 15)
pour SQL Server, vous pouvez faire comme suit:
CREATE TABLE T(
Str VARCHAR(15)
);
INSERT INTO T VALUES
('abc'), --3 chars
('abcdefg'), --7 chars
('abcrfhtkidleoky'); -- 15 chars
SELECT *, LENGTH(Str) LN
FROM T;
UPDATE T
SET Str = Str || REPLACE(HEX(ZEROBLOB(15-LENGTH(Str))), '00', ' ')
WHERE LENGTH(Str) < 15;
SELECT *, LENGTH(Str) LN
FROM T;
Salut Sami, curieux Pourquoi vous mettriez jamais à jour une table avec des espaces vides lorsque vous pouvez ajouter l'espacement lorsque vous sélectionnez?
C'est l'OP qui veut le faire, pas moi, je fais juste ce qu'il demande. D'accord C'est une idée horrible et n'a aucun sens mais ... c'est son choix.
Ok, je pensais qu'il avait juste besoin de ne pas sélectionner non pas à jour, ouais d'accord avec vous n'a aucun sens sur une mise à jour.
Dans n'importe quelle base de données, la conversion à un La méthode la plus typique serait de caresser les valeurs avec des espaces. La méthode exacte pour cela varie selon la base de données. P> p> Char () code> devrait fonctionner: char () code> type est une longueur fixe, rembourré avec des espaces. p>
Très soigné et simple :-)
Que suggère le manuel
Voir Stackoverflow.com / Questions / 56501717 / ... de plus tôt aujourd'hui.
[champ] + espace (15 len ([champ])))
Roger Clerkwell: Il donne une exception Null Pointer pour les valeurs vierges