SQL Serverの代替は何ですか
To_CHAR([列名], -987654321)
To_Number([列名],'999999999D99999900')
? また、構文から予測できるのは、両方がフォーマットに使用されていることです。それでは、それらの違いは何ですか?
SQL Serverの代替は何ですか
To_CHAR([列名], -987654321)
To_Number([列名],'999999999D99999900')
? また、構文から予測できるのは、両方がフォーマットに使用されていることです。それでは、それらの違いは何ですか?
Sql Server でのキャストは次のように行われます。
CAST([column] AS CHAR([required length]))
CAST([column] AS [whatever numeric type you want])
その後、Sql Server 2012 以降を使用している場合はFORMAT
、関数を使用できます。
FORMAT([value], [format])
あなたの場合、私はこれを試します:
FORMAT(CAST([column] AS CHAR([required length])), '-987654321')
FORMAT(CAST([column] AS [whatever numeric type you want]), '000000000.000000##')
CHAR
特にキャスティングに関して、ここでのフォーマット戦略が何であるかはよくわかりませんが... :)
Sql Server 2012 より前のフォーマットの値は、せいぜい扱いにくいものです。幸いなことに、C# の知識があれば、強力な .NET Framework フォーマット メカニズムを、SQLCLR で実行されるアセンブリにマップされたSqlユーザー定義関数として公開できます。そこから、SQL2012 FORMAT 関数に相当するものを非常に簡単に作成できます。これは、Sql Server 2005 および 2008 で機能します。