Ich arbeite an einer Online-SQL-Übung und versuchen, eine Reihe von Ganzzahl in Binärzahlen ohne führende 0 zu konvertieren. Die Datenbank-Engine ist MS SQL Server.Konvertieren von Ganzzahl in Binärformat in SQL Server
Im Folgenden sind die Original-Tabellen:
trip_no
1100
1101
1123
1124
1145
1146
1181
1182
1187
1188
1195
1196
7771
7772
7773
7774
7775
7776
7777
7778
8881
8882
Und die korrekte Ausgabe dies sein sollte:
trip_no trip_no_bi
1100 10001001100
1101 10001001101
1123 10001100011
1124 10001100100
1145 10001111001
1146 10001111010
1181 10010011101
1182 10010011110
1187 10010100011
1188 10010100100
1195 10010101011
1196 10010101100
7771 1111001011011
7772 1111001011100
7773 1111001011101
7774 1111001011110
7775 1111001011111
7776 1111001100000
7777 1111001100001
7778 1111001100010
8881 10001010110001
8882 10001010110010
Ich versuchte cast((trip_no) as varbinary)
Syntax zu verwenden, aber das Ergebnis ist seltsam. Zum Beispiel, wenn ich cast()
Funktion 1100
auf die Ausübung Webseite konvertieren zurück es L
, und die restlichen Ausgang war:
trip_no
1100 L
1101 M
1123 c
1124 d
1145 y
1146 z
1181 ќ
1182 ћ
1187 Ј
1188 ¤
1195 «
1196 ¬
7771 [
7772 \
7773 ]
7774 ^
7775 _
7776 `
7777 a
7778 b
8881 "±
8882 "І
während, wenn ich dies in MS SQL Server Management Studio versucht, es wieder:
trip_no trip_no_bi
1100 0x0000044C
1101 0x0000044D
1123 0x00000463
1124 0x00000464
1145 0x00000479
1146 0x0000047A
1181 0x0000049D
1182 0x0000049E
1187 0x000004A3
1188 0x000004A4
1195 0x000004AB
1196 0x000004AC
7771 0x00001E5B
7772 0x00001E5C
7773 0x00001E5D
7774 0x00001E5E
7775 0x00001E5F
7776 0x00001E60
7777 0x00001E61
7778 0x00001E62
8881 0x000022B1
8882 0x000022B2
Ich kann nicht herausfinden, wie das passiert ist. Bitte helfen Sie.
Im Gegensatz zur Situation in diesem Link gefragt: SQL Server Convert integer to binary string
Ich bin nicht nur für eine wiederverwendbare Lösung Cuz der Übung zu fragen erlaubt eine Ein-Schritt-Lösung ...
Da die Frage erwähnt, dass die gewünschte Ausgabe ist its binary number representation (without leading zeroes)
, ich denke, es ist entweder INT
oder VARCHAR
.
Auch ignorieren Sie bitte die führende 0 Sache als von jetzt, da es leicht ist, es loszuwerden.
ich dies klar gewesen sein sollte: nach der ersten Antwort da ich diese Frage realisierte im Wesentlichen für eine Reihe von Konvertierung zwischen Zahlen und Strings zu fragen, mit der Formel in der Abfrage binäre Zahl zu erhalten. Ich glaube nicht, dass es um eine binäre Konvertierungsfunktion geht, aber es fragt nach "Berechne die Binärzahl des ursprünglichen trip_no, präsentiere es und trimme die führende 0" herunter.
Mögliches Duplikat [SQL integer Server Umrechnen in Binärkette] (http: //Paketüberfluss.com/questions/127116/sql-server-convert-integer-zu-binary-string) –
das ist nicht eine führende Null, die Notation für Exadecimal ist und das Präfix ist "0x". Hier sind zwei Dinge zu beachten: A) der tatsächliche Datentyp Ihrer Daten, B) die visuelle Darstellung dieser Daten durch SSMS. Die Ausgabeanzeige gibt den Datentyp –
nicht vor Die # 1 Lösung, die Sie in dem Link zur Verfügung stellten, gab eine ausführbare Abfrage zu dem Konvertieren an. Aber ich frage mich, ob es möglich ist, über eine Aussage zu konvertieren. Der zweite schien zu komplex für diesen Zweck. @RickS – malamoji