Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Serwer MS SQL - zamień ciąg HEX na liczbę całkowitą

Dzięki za podanie bardziej wyraźnych przykładów. O ile mogę powiedzieć z dokumentacji i Googlingu, nie jest to możliwe w MSSQL 2005 bez UDF lub innego kodu proceduralnego. W MSSQL 2008 styl funkcji CONVERT() parametr obsługuje teraz dane binarne, więc możesz to zrobić bezpośrednio w ten sposób:

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

W poprzednich wersjach dostępne są następujące opcje:

  • Użyj UDF (TSQL lub CLR; CLR może być do tego łatwiejsze)
  • Opakuj SELECT w procedurę składowaną (ale prawdopodobnie i tak będziesz miał w niej odpowiednik UDF)
  • Konwertuj go w interfejsie aplikacji
  • Aktualizacja do MSSQL 2008

Jeśli konwertowanie danych służy tylko do wyświetlania, aplikacja może być najłatwiejszym rozwiązaniem:formatowanie danych zwykle i tak należy do nich. Jeśli musisz to zrobić w zapytaniu, UDF jest najłatwiejszy, ale wydajność może nie być świetna (wiem, że powiedziałeś, że wolisz nie używać UDF, ale nie jest jasne, dlaczego). Zgaduję, że aktualizacja do MSSQL 2008 tylko w tym celu prawdopodobnie nie jest realistyczna.

Na koniec, FYI podany numer wersji to wersja Management Studio, a nie numer wersji serwera. Aby to uzyskać, zapytaj sam serwer za pomocą select @@version lub 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. Jak wybrać pierwszy dzień miesiąca w SQL?

  2. Jak mogę pobrać listę identyfikatorów z tabeli SQL jako ciąg wartości oddzielonych przecinkami?

  3. Zarządzaj współbieżnością transakcji za pomocą blokad w SQL Server

  4. Jak zsynchronizować dwa (lub n) procesy replikacji dla baz danych SQL Server?

  5. Jak wyszukiwać zawartość procedury/(funkcja SP-Trigger)