1. ホーム
  2. sql

[解決済み] データ型varcharからfloatへの変換エラー

2022-03-08 16:46:58

質問

SOで検索しても検索しても分からない
各フィールドをFLOATとしてCASTしてみたが無駄だった、convertしてもこれ以上は無理だった
以下のcase句で、THENセクションに記述された値を返すようにするにはどうすればよいでしょうか。

エラーです。 Msg 8114, レベル 16, ステート 5, ライン 1 データ型 varchar を float に変換する際にエラーが発生しました。

エラーになるSQLクエリの部分。

When cust_trendd_w_costsv.terms_code like '%[%]%' and (prod.dbo.BTYS2012.average_days_pay) - (substring(cust_trendd_w_costsv.terms_code,3,2)) <= 5 THEN prod.dbo.cust_trendd_w_costsv.terms_code

平均給料日数 = float
条件コード = char

乾杯

解決方法は?

を使ってみてください。 ISNUMERIC を使用して、変換できない文字列を処理します。

When cust_trendd_w_costsv.terms_code like '%[%]%' 
and (prod.dbo.BTYS2012.average_days_pay) - 

(case when isnumeric(substring(cust_trendd_w_costsv.terms_code,3,2))=1 
         then cast(substring(cust_trendd_w_costsv.terms_code,3,2) as float)
         else 0
 end)
<= 5 THEN prod.dbo.cust_trendd_w_costsv.terms_code