3

SQL Serverの代替は何ですか

To_CHAR([列名], -987654321)

To_Number([列名],'999999999D99999900')

? また、構文から予測できるのは、両方がフォーマットに使用されていることです。それでは、それらの違いは何ですか?

4

1 に答える 1

3

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 で機能します。

于 2014-03-18T12:25:00.890 に答える