2

ssrs レポートを作成し、mockdata sql スクリプトを作成しています。
スクリプトでは、次のように 10 進数値を挿入します。

declare @tempTable table(
  aString varchar(50),
  aDecimal decimal(5,2)
)

insert into @tempTable
values ("somestring", 1,23)

「someString」の後の値は、実際には、小数点としてコンマを使用した 1 つの 10 進数値です。ただし、SQL はこれを個別の値として解釈するため、列数に対して値が多すぎるというエラーがスローされます。これについてどうすればいいですか?

更新
明確にするために:私は「。」がある地域にいます は桁区切り記号、「,」は小数点記号です。
引用符の間に入れても機能しません。それは私にError converting data type varchar to numericメッセージを与えます

4

3 に答える 3

3

SQL スクリプトで数値を定数として指定するには、ロケール設定ではなく、SQL構文規則に従う必要があります。.また、構文では、a を小数点記号として使用するように指示されています。桁区切り記号については、まったく使用されません。

これは厳密には、スクリプトでデータをコーディングすることであり、データを表示することではないことに注意してください。表示は、ロケール設定が重要な場所であり、それらが適切であれば、それに応じてフォーマットされた出力を取得する必要があります。

于 2012-06-18T10:07:09.483 に答える
1

SQL を挿入するときは、コンマを使用して値を区切ります。これがどのタイプのフィールドかはわかりませんが、INT または DECIMAL の場合は機能しません。

動作させるには、次のように引用符で囲みます。

insert into @tempTable
values ("somestring", '1,23')

最善の方法は次のとおりです。

  1. 10 進数の場合は、 を使用します。コンマとして、その後文字列を操作します。
  2. 1000区切りの場合は外して、表示するときにこうすればいい
于 2012-06-18T08:03:36.300 に答える