Gracias por dar algunos ejemplos más explícitos. Por lo que puedo decir de la documentación y Google, esto no es posible en MSSQL 2005 sin un UDF u otro código de procedimiento. En MSSQL 2008, el estilo de la función CONVERT() El parámetro ahora admite datos binarios, por lo que puede hacerlo directamente así:
select convert(int, convert(varbinary, '0x89', 1))
En versiones anteriores, sus opciones son:
- Use un UDF (TSQL o CLR; CLR en realidad podría ser más fácil para esto)
- Envuelva el SELECT en un procedimiento almacenado (pero probablemente todavía tendrá el equivalente de un UDF de todos modos)
- Convertirlo en la interfaz de la aplicación
- Actualizar a MSSQL 2008
Si la conversión de datos es solo para fines de visualización, la aplicación podría ser la solución más fácil:el formato de datos generalmente pertenece allí de todos modos. Si debe hacerlo en una consulta, entonces un UDF es más fácil, pero el rendimiento puede no ser excelente (sé que dijo que prefería no usar un UDF, pero no está claro por qué). Supongo que actualizar a MSSQL 2008 solo por esto probablemente no sea realista.
Finalmente, para su información, el número de versión que incluyó es la versión de Management Studio, no el número de versión de su servidor. Para obtener eso, consulta el propio servidor con select @@version
o select serverproperty('ProductVersion')
.