sql >> Database teknologi >  >> RDS >> Sqlserver

MS SQL server - konverter HEX streng til heltal

Tak for at give nogle mere eksplicitte eksempler. Så vidt jeg kan se ud fra dokumentationen og google, er dette ikke muligt i MSSQL 2005 uden en UDF eller anden procedurekode. I MSSQL 2008 CONVERT()-funktionens stil parameteren understøtter nu binære data, så du kan gøre det direkte sådan her:

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

I tidligere versioner er dine valg:

  • Brug en UDF (TSQL eller CLR; CLR kan faktisk være nemmere for dette)
  • Indpak SELECT i en lagret procedure (men du vil sandsynligvis stadig have det, der svarer til en UDF i den alligevel)
  • Konverter det i programmets frontend
  • Opgrader til MSSQL 2008

Hvis konvertering af data kun er til visningsformål, kan applikationen være den nemmeste løsning:dataformatering hører normalt til der alligevel. Hvis du skal gøre det i en forespørgsel, så er en UDF nemmest, men ydeevnen er måske ikke fantastisk (jeg ved, du sagde, at du foretrak ikke at bruge en UDF, men det er ikke klart hvorfor). Jeg gætter på, at det nok ikke er realistisk at opgradere til MSSQL 2008 kun for dette.

Til sidst, til info er det versionsnummer, du inkluderede, versionen af ​​Management Studio, ikke versionsnummeret på din server. For at få det, forespørg på selve serveren med select @@version eller select serverproperty('ProductVersion') .




  1. Vælg rækker, indtil betingelsen er opfyldt

  2. Hvordan kan jeg stoppe en kørende MySQL-forespørgsel?

  3. MySQL undtagelseshåndteringsadgangsundtagelse håndteres

  4. MSDTC på serveren 'serveren er ikke tilgængelig'