2016-08-11 14 views
0

私は4つの(関連する)フィールド、DESCRP,Description1,Description2およびDescriptionMatchを持っています。SQLでのデータ型の不一致

DESCRPは、Description1と同じにする必要があります。これは、18文字+ Description2になります。このプロセス中に確認されています。

Description2 IS NOT NULL以下のコードは正常に動作します。しかし

OR Description2 IS NULL AND REPLACE(Description1," ","") = Replace(DESCRP," ","")) 

Description2 IS NULLはそう私は二行目が存在しない場合、パディングは無関係であるとして(これを改善するために、この行を追加しようとしている場合は何らかの理由で

UPDATE tblParametersComp SET DescriptionMatch = "YES" 
WHERE (NOT (DESCRP IS NULL OR Description1 IS NULL)) 
AND 
((DESCRP = [Description1]+IIf(Len([Description1])<18,Space(18-Len([Description1])),"")+[Description2]) 

が、これは動作しません。これは、次のエラーを生成している:

ので、私の知る限り、意味がありません

DB Error

、関連するすべてのフィールドTextデータ型です。

DB Data

私は念のためにCSTR(Replace(...)) = CSTR(Replace(...))を使用してみました、それは何の違いが行われていません。

アドバイスをいただければ幸いです!

+0

最終的に、+(Description2 + "") –

+0

の代わりに説明2 –

+0

Description2に同じIIF()を使用してください。 –

答えて

0

コメントでの議論の後、決定的な回答を投稿していない人は、NULLレコードを処理していないようです。

これは、NZ機能を使用して処理されました。

だから、行になった:魔法のように動作

WHERE DESCRP = nz([Description1],"")+IIf(Len(nz([Description1],""))<18,Space(18-Len(nz([Description1],""))),"")+(nz(Description2,""));