
SELECT TOP (100) PERCENT
ACODE * 10 + CCODE AS Aコード,
ACODE * 1000 + CCODE * 100 + GCODE AS Bコード,
CASE WHEN [GCODE] = 0 THEN [CHIBAN] ELSE [GCODE] END AS 番地,
MIN(DISTINCT X) AS X,
MIN(DISTINCT Y) AS Y
FROM
dbo.Tbl
GROUP BY
ACODE * 10 + CCODE, ACODE * 1000 + CCODE * 100 + GCODE, CASE WHEN [GCODE] = 0 THEN [CHIBAN] ELSE [GCODE] END
ORDER BY
字丁目コード, 号特定コード, 番地
上記のクエリを実行すると「データ型 nvarchar を float に変換中にエラーが発生しました。」というメッセージが表示されてしまいます。
おそらく[CHIBAN]フィールドはnvarchar型のためエラーが発生していると思うのですが、
なぜ強制的にfloat型にしようとするのかわかりません。
どのように回避すればよいでしょうか。ご教示のほどお願い致します。

No.1ベストアンサー
- 回答日時:
>CASE WHEN [GCODE] = 0 THEN [CHIBAN] ELSE [GCODE] END
上記のCASE文の[GCODE]が数値型のようなので暗黙の型変換が行われているのでしょう。
なので、[CHIBAN]内に文字列が入っていて変換できないのでしょう。
戻り値の型
http://msdn.microsoft.com/ja-jp/library/ms181765 …
>result_expressions およびオプションの else_result_expression の型のセットの中から、最も優先順位の高い型を返します。詳細については、「データ型の優先順位 (Transact-SQL)」を参照してください。
データ型の優先順位
http://msdn.microsoft.com/ja-jp/library/ms190309 …
CASTで文字列に明示的に変換すればよいでしょう。
http://msdn.microsoft.com/ja-jp/library/ms187928 …
データ
[GCODE] [CHIBAN]
0A
01
03
1A
1B
エラーケース
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
GCODECHIBAN番地
0A A
01 1
03 3
1A 1
1B 1
Select時には型を合せましょう。
ご親切な回答ありがとうございます。
解決いたしました。
>Select時には型を合せましょう。
Accessで慣れていたもので。。。お恥ずかしいです。
ありがとうございます。助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Visual Basic(VBA) 配列にしたセル範囲でのコメントがあるかどうかを取得するコードの書き方 2 2022/09/17 05:09
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
このQ&Aを見た人はこんなQ&Aも見ています
-
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
EXCELVBAでSQLserverからデータをひっぱってきてエクセルに表示させたい
Visual Basic(VBA)
-
SQLserver算術オーバーフローエラーについて
SQL Server
-
-
4
【Transact-sql】 where条件、inのパタメータを変数に持たせる方法
SQL Server
-
5
SQLのエラー(~付近に不適切な構文があります)
SQL Server
-
6
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
7
列名に変数を使うことはできないのでしょうか?
SQL Server
-
8
varchar から型 float への変換エラー。
SQL Server
-
9
SUBSTRING 関数に渡した長さのパラメータが無効です。
SQL Server
-
10
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
11
VarChar型をINT型に変換するには
SQL Server
-
12
SQLServer sqlcmdが使えない
SQL Server
-
13
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
14
SQL Serverにおける小数部の0表記について
その他(プログラミング・Web制作)
-
15
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
16
DBの定義のサイズを大きくし過ぎると問題ある?
その他(データベース)
-
17
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mplabの事です。 2年くらい前に...
-
SQL エラー コードの一覧 につ...
-
AccessのFormat関数について
-
ACCESSでのINSERTについて
-
パイソンのエラー
-
movable typeの使い方
-
EXSIST述語を使った副問合わせ...
-
オラクルのエラー番号、エラー...
-
ACCESS 2003ランタイムによるEX...
-
DB2のテーブルの修復方法
-
SQLServerユーティリティについて
-
AccessのMDBのオープンエラーに...
-
列名に変数を使うことはできな...
-
Access97でアプリケーションエ...
-
SQLiteで全文検索はANDできない?
-
実行時エラー459 withステート...
-
SQLサーバー2012 アンインスト...
-
Access2010実行時エラー-21473525
-
ORACLE PL/SQLの...
-
Windows2000とAccessランタイム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスでエラー このフィー...
-
#1062 - '0' は索引 'PRIMARY' ...
-
オラクル(PL/SQL)のエラー
-
列名に変数を使うことはできな...
-
SQLserver2005 nvarchar を flo...
-
BULK INSERTのエラー取得は可能...
-
AccessVBA 実行時エラー'2766'...
-
UPDATEを使ったSQL文にて
-
空白はダメというエラーの表示...
-
SQL文長の制限
-
PL/SQL ORA-06502エラーに関し...
-
Access2010実行時エラー-21473525
-
エラーについて
-
DocuWorksでの印刷
-
Access 実行時エラー'3075' 対...
-
アクセスでのエラーについて
-
『ORA-00936: 式がありません。...
-
オラクルでisnumeric?
-
実行時エラー459 withステート...
-
SQL*Loaderで「オブジェクトが...
おすすめ情報