Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

MS SQL Server - HEX-String in Integer umwandeln

Vielen Dank für einige explizitere Beispiele. Soweit ich der Dokumentation und dem Googeln entnehmen kann, ist dies in MSSQL 2005 ohne UDF oder anderen prozeduralen Code nicht möglich. In MSSQL 2008 der Stil der Funktion CONVERT() Parameter unterstützt jetzt binäre Daten, also können Sie es direkt so machen:

select convert(int, convert(varbinary, '0x89', 1))

In früheren Versionen haben Sie folgende Auswahlmöglichkeiten:

  • Verwenden Sie eine UDF (TSQL oder CLR; CLR könnte dafür tatsächlich einfacher sein)
  • Wrappen Sie das SELECT in eine gespeicherte Prozedur (aber Sie werden wahrscheinlich sowieso immer noch das Äquivalent einer UDF darin haben)
  • Konvertieren Sie es im Frontend der Anwendung
  • Upgrade auf MSSQL 2008

Wenn die Konvertierung der Daten nur zu Anzeigezwecken dient, ist die Anwendung möglicherweise die einfachste Lösung:Die Datenformatierung gehört normalerweise sowieso dazu. Wenn Sie dies in einer Abfrage tun müssen, ist eine UDF am einfachsten, aber die Leistung ist möglicherweise nicht besonders gut (ich weiß, dass Sie gesagt haben, dass Sie keine UDF verwenden möchten, aber es ist nicht klar, warum). Ich vermute, dass ein Upgrade auf MSSQL 2008 nur aus diesem Grund wahrscheinlich nicht realistisch ist.

Zu guter Letzt ist die von Ihnen angegebene Versionsnummer die Version von Management Studio, nicht die Versionsnummer Ihres Servers. Fragen Sie dazu den Server selbst mit select @@version ab oder select serverproperty('ProductVersion') .