SQL を使用して、数千のコンマで数値をフォーマットすることを検討していますが、10 進数は使用できません (そのため、Money は使用できません) - 何か提案はありますか?
私は SQL Server 2005 を使用していますが、他のもの (MySQL など) についても自由に回答してください。
SQL を使用して、数千のコンマで数値をフォーマットすることを検討していますが、10 進数は使用できません (そのため、Money は使用できません) - 何か提案はありますか?
私は SQL Server 2005 を使用していますが、他のもの (MySQL など) についても自由に回答してください。
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)
MySQL では、FORMAT()
関数がうまく機能します。
Oracle では、to_char 関数にフォーマット パラメータを指定できます:
TO_CHAR(1234, '9,999') --> 1,234
これをサーバー側で実行したい特定の理由はありますか? クライアント/レポートにより適したタスクのようです。
それ以外の場合は、数値を文字列として保存して、希望どおりの書式設定を維持できるようにしますが、数値に再変換することなく、基本的な算術演算を行う能力さえ失ってしまいます。
あなたが本当にSQLでそれをやろうと決心していて、正当な理由があるなら、私はスコットの方法に投票していると思います: 価値 --> お金 --> Varchar --> 小数点以下を切り捨てる
-- ケビン・フェアチャイルド
SQL Server の場合、数値を金額としてフォーマットしてから、右端の 3 文字を削除できます。
replace(convert (varchar, convert (money, 109999), 1), '.00','')