Nach diesem Link: Bitweise Operatoren (Transact-SQL) wir können eine bitweise Operation zwischen binary und int, smallint, tinyint oder umgekehrt durchführen.
Aber wie kann ich ein bitweises exklusives ODER in SQL-Server zwischen zwei Binärarten machen? Oder wenn das nicht möglich ist, wie kann ich ein binäres / varbinary auf einzelne Bytes aufteilen?
Der Grund, warum ich darum bitt, ist, weil ich zwei Zahlen größer als max int Wert haben muss. Danke.
Pro Bitwise Exclusive-Dokumentation :
Hinweis
Es kann nur ein Ausdruck vom Datentyp binary oder varbinary sein in einer bitweisen Operation.
Der Kommentar in der Frage von Martin, gab mir eine Idee, wie man binär aufteilt, damit ich die Werte XORIEREN kann. Ursprünglich wollte ich zwei GUIDs in sql XOR. Also hier ist der Code, mit dem ich kam:
%Vor%Die Funktion zum Konvertieren einer binären in eine hexadezimale Zeichenfolge lautet: Binärdaten in hexadezimale Zeichenfolge konvertieren
Ich weiß, dass wir in SQL 2008 die Funktion convert verwenden können, um dies zu tun, wie in diesem Post erklärt: SQL Server 2008: neue binäre - hex String-Konvertierung , aber das war in meinem Fall keine Option.
Es ist jedoch gut, wenn jemand eine bessere Idee hat, wie wir bitweise SQL-Operationen für Binärdaten verwenden können.
BEARBEITEN:
Danke an cyberkiwi für den richtigen Algorithmus und für den Fehler in meinem Code. Dieser Code könnte für die Binärdatei XOR-ing aber nicht für GUIDs gut sein, da GUIDs unterschiedliche Byte-Reihenfolge für erste und letzte 8 Byte haben. Bitte beachten Sie die Wikipedia-Erklärung dafür: GUID Grundstruktur . Beachten Sie, dass Sie, wenn Sie das XOR-ed-Ergebnis als echte GUID verwenden möchten, die Versions-Bits berücksichtigen und berücksichtigen sollten.
Tags und Links sql sql-server tsql