2

SQL を使用して、数千のコンマで数値をフォーマットすることを検討していますが、10 進数は使用できません (そのため、Money は使用できません) - 何か提案はありますか?

私は SQL Server 2005 を使用していますが、他のもの (MySQL など) についても自由に回答してください。

4

5 に答える 5

4

TSQLを使用すると、お金にキャストして変換すると.00が追加されますが、置換または部分文字列を使用して削除できます。

replace(convert(varchar, cast(column as money), 1), '.00', '')

SQL 2005 では、CLR 関数も使用できます。

[Microsoft.SqlServer.Server.SqlFunction]
public static SqlString FormatNumber(SqlInt32 number)
{
    return number.Value.ToString("N0");
}

他のユーザー定義関数として呼び出します

SELECT dbo.FormatNumber(value)
于 2008-09-03T17:59:23.860 に答える
2

MySQL では、FORMAT()関数がうまく機能します。

于 2008-09-03T17:53:23.343 に答える
2

Oracle では、to_char 関数にフォーマット パラメータを指定できます:
TO_CHAR(1234, '9,999') --> 1,234

于 2008-09-03T18:08:24.323 に答える
2

これをサーバー側で実行したい特定の理由はありますか? クライアント/レポートにより適したタスクのようです。

それ以外の場合は、数値を文字列として保存して、希望どおりの書式設定を維持できるようにしますが、数値に再変換することなく、基本的な算術演算を行う能力さえ失ってしまいます。

あなたが本当にSQLでそれをやろうと決心していて、正当な理由があるなら、私はスコットの方法に投票していると思います: 価値 --> お金 --> Varchar --> 小数点以下を切り捨てる

-- ケビン・フェアチャイルド

于 2008-09-03T18:20:53.653 に答える
0

SQL Server の場合、数値を金額としてフォーマットしてから、右端の 3 文字を削除できます。

replace(convert (varchar, convert (money, 109999), 1), '.00','')
于 2008-09-03T18:09:57.283 に答える