Convertir Varchar Ascii
Je suis en train de convertir le contenu d'un champ de type VARCHAR pour être numéro unique qui peut être facilement référencé par une 3ème partie.
Comment puis-je convertir un varchar de la chaîne ascii équivalent? En TSQL? L'ASCII() fonction convertit un caractère unique, mais que puis-je faire pour convertir toute une chaîne de caractères?
J'ai essayé d'utiliser
CAST(ISNULL(ASCII(Substring(RTRIM(LTRIM(PrimaryContactRegion)),1,1)),'')AS VARCHAR(3))
+ CAST(ISNULL(ASCII(Substring(RTRIM(LTRIM(PrimaryContactRegion)),2,1)),'')AS VARCHAR(3))
....mais cela est fastidieux, stupide, et juste ne fonctionne pas vraiment si j'ai eu de longues chaînes. Ou si c'est mieux comment pourrais-je faire la même chose dans SSRS?
Combien de temps pourra la chaîne pour être converti être? Rien depuis 3 personnages s'laid réelle rapide.
Certainement assez longtemps que j'ai besoin de chercher quelque chose de différent. J'ai un couple de 30 chaînes de caractères.
Cela ne fonctionne que jusqu'à 100 dans la limite de la récursivité. Si vous avez une chaîne de plus de 100, il va arrêter l'exécution, après avoir atteint la limite
Certainement assez longtemps que j'ai besoin de chercher quelque chose de différent. J'ai un couple de 30 chaînes de caractères.
Cela ne fonctionne que jusqu'à 100 dans la limite de la récursivité. Si vous avez une chaîne de plus de 100, il va arrêter l'exécution, après avoir atteint la limite
OriginalL'auteur Bolt_Head | 2010-12-20
Vous devez vous connecter pour publier un commentaire.
essayer quelque chose comme cela:
De SORTIE:
juste pour tester:
De SORTIE:
Aussi, vous pourriez utiliser ce:
pour forcer toutes les valeurs ASCII en 3 chiffres, je ne suis pas sûr si cela est nécessaire en fonction de votre utilisation ou pas.
De sortie à l'aide de 3 chiffres par caractère:
LEN()
fonction avecDATALENGTH()
.Ce qui est excellent. J'ai fait une petite modification pour le rendre un peu plus facile à lire, qui devrait être nécessaire.
RIGHT('000'+CONVERT(varchar(max),ASCII(SUBSTRING(@YourString,Number,1))),3) + ', '
OriginalL'auteur KM.
Bien, je pense que ce sera très lent, mais je suppose que vous pourriez faire quelque chose comme ceci:
Je ne suis pas dans un pc avec un moteur de base de données, donc je ne peux pas vraiment tester ce code. Si cela fonctionne, alors vous pouvez créer un fichier UDF sur cette base.
CAST(ASCII(SUBSTRING(@string, @count, 1)) AS VARCHAR)
OriginalL'auteur Lamak