Konvertieren von Varchar in Ascii
Ich versuche zu konvertieren, Inhalte von VARCHAR-Feld eindeutige Nummer, die leicht verwiesen wird, die von einem 3rd-party.
Wie kann ich konvertieren von varchar in der ascii-Zeichenfolge-äquivalent? In TSQL? Die ASCII () - Funktion wandelt ein einzelnes Zeichen, aber was kann ich tun, um zu konvertieren eine ganze Schnur?
Ich habe versucht, mit
CAST(ISNULL(ASCII(Substring(RTRIM(LTRIM(PrimaryContactRegion)),1,1)),'')AS VARCHAR(3))
+ CAST(ISNULL(ASCII(Substring(RTRIM(LTRIM(PrimaryContactRegion)),2,1)),'')AS VARCHAR(3))
....aber das ist mühsam, blöd schauen, und einfach nicht wirklich arbeiten, wenn ich hatte lange strings. Oder ob es besser ist, wie würde ich das gleiche tun in SSRS?
Wie lange könnte der string, der konvertiert werden? Alles letzten 3 Zeichen bekommt echte hässlich, wirklich schnell.
Sicherlich lange genug, dass werde ich brauchen, zu suchen, etwas anders. Ich habe ein paar 30 Zeichen-strings.
Dies funktioniert nur bis zu 100, wie die Rekursion begrenzen. Wenn Sie eine Zeichenfolge, die länger als 100 wird, Stoppt die Ausführung nach dem Auftreffen auf die Grenze
Sicherlich lange genug, dass werde ich brauchen, zu suchen, etwas anders. Ich habe ein paar 30 Zeichen-strings.
Dies funktioniert nur bis zu 100, wie die Rekursion begrenzen. Wenn Sie eine Zeichenfolge, die länger als 100 wird, Stoppt die Ausführung nach dem Auftreffen auf die Grenze
InformationsquelleAutor Bolt_Head | 2010-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
probieren Sie etwas wie dieses:
AUSGABE:
nur um es zu testen:
AUSGABE:
Auch, möchten Sie vielleicht zu verwenden:
Kraft aller ASCII-Werte in die 3 Ziffern bin ich mir nicht sicher, ob dies notwendig ist, basierend auf der Verwendung oder nicht.
Ausgabe mit 3 Ziffern pro Zeichen:
LEN()
Funktion mitDATALENGTH()
.Dies ist ausgezeichnet. Ich machte eine kleine änderung, um es ein wenig leichter zu Lesen, sollte das notwendig sein.
RIGHT('000'+CONVERT(varchar(max),ASCII(SUBSTRING(@YourString,Number,1))),3) + ', '
InformationsquelleAutor KM.
Gut, ich denke, dass eine Lösung für dieses wird sehr langsam sein, aber ich vermute, dass Sie könnte so etwas wie dieses:
Ich bin nicht in einem pc mit einer Datenbank-engine, also kann ich nicht wirklich testen dieses Codes. Wenn es funktioniert, dann erstellen Sie ein UDF basiert auf dieser.
CAST(ASCII(SUBSTRING(@string, @count, 1)) AS VARCHAR)
InformationsquelleAutor Lamak