Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

MS SQL сървър - конвертиране на HEX низ в цяло число

Благодаря, че даде някои по-ясни примери. Доколкото мога да разбера от документацията и Googleing, това не е възможно в MSSQL 2005 без UDF или друг процедурен код. В MSSQL 2008 стилът на функцията CONVERT(). параметърът вече поддържа двоични данни, така че можете да го направите директно по следния начин:

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

В предишните версии вашите възможности за избор са:

  • Използвайте UDF (TSQL или CLR; CLR всъщност може да е по-лесно за това)
  • Обвийте SELECT в съхранена процедура (но все пак вероятно ще имате еквивалента на UDF в нея)
  • Преобразувайте го в предния край на приложението
  • Надградете до MSSQL 2008

Ако преобразуването на данните е само за целите на показването, приложението може да е най-лесното решение:форматирането на данни обикновено принадлежи там така или иначе. Ако трябва да го направите в заявка, тогава UDF е най-лесният, но производителността може да не е страхотна (знам, че казахте, че предпочитате да не използвате UDF, но не е ясно защо). Предполагам, че надграждането до MSSQL 2008 само за това вероятно не е реалистично.

И накрая, за информация номерът на версията, който сте включили, е версията на Management Studio, а не номера на версията на вашия сървър. За да получите това, направете запитване до самия сървър с select @@version или select serverproperty('ProductVersion') .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо вмъкване-избиране към таблица с променлива от XML променлива толкова бавно?

  2. SQL 2005 Reporting Services, ако се провери за нула

  3. Премахнете всички интервали от низ в SQL Server

  4. Възстановяване на база данни от авариен режим в SQL Server

  5. Къде се запазват SSIS пакетите?