- ベストアンサー
SQLserver2005 nvarchar を float に変換中にエラー発生
- データ型 nvarchar を float に変換中にエラーが発生しました。
- [CHIBAN]フィールドはnvarchar型のためエラーが発生していると思われます。
- 強制的にfloat型に変換する原因が不明です。
- みんなの回答 (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時には型を合せましょう。
お礼
ご親切な回答ありがとうございます。 解決いたしました。 >Select時には型を合せましょう。 Accessで慣れていたもので。。。お恥ずかしいです。 ありがとうございます。助かりました。