ELSEブロックの数値列に ' - 'と表示する簡単なCASE文があります。 しかし、それは私にエラーを与えるCASE文で数字の表示文字列の代わりに ' - 'を使用する方法
Arithmetic overflow error converting varchar to data type numeric.
私はそれをどのように行うのでしょうか? は、私はこのようにそれをしたい:
ここSELECT
CASE WHEN ChargeName = 'Premium' THEN CompanyCommissionPercentage ELSE '-' END AS CompanyCommissionPercentage
,CASE WHEN ChargeName = 'Premium' THEN RemitterCommissionPercentage ELSE '-' END AS RemitterCommissionPercentage
,CASE WHEN ChargeName = 'Premium' THEN RemitterCommission ELSE '-'END AS RemitterCommission
,CASE WHEN ChargeName = 'Premium' THEN GrossCommission ELSE '-'END AS GrossCommission
FROM @tmpAccountsPayable
うん。結果セットは1つの列に対して1つのデータ型しか持てません。遭遇した最初の値は数値なので、列は数値に設定されます。システムは暗黙的に - を数値にキャストしようとします。したがって、エラーが発生します。したがって、数値をvarcharデータ型にキャストすると、これまでのように問題が解決されます。注: ' - 'をvarchar(10)にキャストする必要はありません。これはすでに文字データです。 – xQbert
このシンプルなことについて知らなかった。説明をありがとう。 – Oleg
助けてくれてうれしいです。あなたは何をすべきか把握することができてうれしいです。私がしたのはなぜなのかということでした。なぜ私が助けてくれるのか知っています!注:Excelでは、 - ではなく0を渡すことができ、Excelでフォーマット中のゼロをダッシュとして扱わせることができます。私はそれが会計のスタイルと呼ばれていると信じています(または、ホームメニューのツールバーから '、'を選択してください) - – xQbert