• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLserver2005 nvarchar を float に変換中にエラー発生)

SQLserver2005 nvarchar を float に変換中にエラー発生

このQ&Aのポイント
  • データ型 nvarchar を float に変換中にエラーが発生しました。
  • [CHIBAN]フィールドはnvarchar型のためエラーが発生していると思われます。
  • 強制的にfloat型に変換する原因が不明です。

質問者が選んだベストアンサー

  • ベストアンサー
  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.1

>CASE WHEN [GCODE] = 0 THEN [CHIBAN] ELSE [GCODE] END 上記のCASE文の[GCODE]が数値型のようなので暗黙の型変換が行われているのでしょう。 なので、[CHIBAN]内に文字列が入っていて変換できないのでしょう。 戻り値の型 http://msdn.microsoft.com/ja-jp/library/ms181765.aspx >result_expressions およびオプションの else_result_expression の型のセットの中から、最も優先順位の高い型を返します。詳細については、「データ型の優先順位 (Transact-SQL)」を参照してください。 データ型の優先順位 http://msdn.microsoft.com/ja-jp/library/ms190309.aspx CASTで文字列に明示的に変換すればよいでしょう。 http://msdn.microsoft.com/ja-jp/library/ms187928.aspx データ [GCODE] [CHIBAN] 0 A 0 1 0 3 1 A 1 B エラーケース select CASE WHEN [GCODE] = 0 THEN [CHIBAN] ELSE [GCODE] END AS 番地 from test オッケーケース select [GCODE],[CHIBAN], CASE WHEN [GCODE] = 0 THEN [CHIBAN] ELSE CAST([GCODE] AS nvarchar(10)) END AS 番地 from test GCODE CHIBAN 番地 0 A A 0 1 1 0 3 3 1 A 1 1 B 1 Select時には型を合せましょう。

kyoh8
質問者

お礼

ご親切な回答ありがとうございます。 解決いたしました。 >Select時には型を合せましょう。 Accessで慣れていたもので。。。お恥ずかしいです。 ありがとうございます。助かりました。

関連するQ&A