2

クエリの where 句で CAST() 関数を使用しようとしています。基本的に、Decimal(10,0) として型指定された TableA に FieldA があり、CHAR として型指定された TableB に FieldB があり、フィールド A と B が同一であるという条件で 2 つのテーブルを結合したいと考えています。

シンプルにやってみた

select FieldA , FieldB from tableA left join tableB 
on cast(FieldB as decimal(10,0))= FieldA

しかし、それはエラーを返します

CAST 句で認められない文字

編集これはフランス語からの悪い翻訳でした。正しい翻訳は次のようです

キャスト指定の無効な文字値

(thx アレックス K)

私はその後、次のようなことをしようとしました

select tableA.fieldA, tableC.fieldC
from tableA left join
(select cast(fieldB as decimal(10,0)) fieldC from tableB)
as tableC on fieldC=fieldA

しかし、同じエラーが返されます

私はSQLの専門家ではなく、基本的にあちこちでいくつかのSELECTを使用し、同様の問題を探してみましたが、私の問題に一致する答えが見つかりません。

誰にもアイデアがありますか?ありがとう

4

1 に答える 1

0

コメントのおかげで、小数としてキャストしようとしたいくつかのフィールドが数値ではないことを理解しました-小数フィールドをcharとしてキャストするのとは逆の方法でそれを行いました。

ご協力いただきありがとうございます

于 2012-10-30T13:08:10.187 に答える