より明確な例を挙げていただきありがとうございます。ドキュメントと Google で調べた限りでは、これは UDF やその他の手続き型コードがなければ MSSQL 2005 では不可能です。 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')
.