2016-12-28 11 views
-1

15桁以上のフィールドを持つExcelスプレッドシートがあります。私がやっているワットは、私はそれを開き、データの行をつかんで、各行に値をチェックするということです。次に、いくつかの基準を使用して、このClient値が既にDBにあるかどうか調べます。例としてDBに照会する前にIS NULLを文字列に割り当てる

一部のフィールドは空白にしてください。基本的には、いくつかのフィールドをチェックした後、レコードを使用してそのレコードがすでにDBに存在するかどうかをチェックします。それはSQLで何かを見つけることができませんdoes notの - いくつかのフィールドは、私は、SQL Serverのクエリを実行したときに市は=「」ので、それは何かのような...

Select * from TblA where Company='Apple' and CompanyAdd ='Cupertino' and City='' 

を探します。その場合には空になっているときに問題が生じます。機能する唯一のものは

and City is NULL 

どのようにCITYのような変数にプログラムで割り当てることができますか?

それは文字列とSQL内のフィールドでは、varchar型

ある

EDIT:(例として)私はこのような何かを行うことができるようにしたい

.....

if city = "" then 
    'I need this here to be so that.... 
    city IS NULL 
End if 

だから私はクエリを実行するとき、それは何かのように見えるDBこと...

Select count(*) from TblA where City is Null 

は、その可能性のようなsomethngですか?

+1

列が空文字列を許可する場合、AND CityはNULLです。 – Plutonix

+0

@plutonix私の編集を参照してください – BobSki

+0

Is Is NullはVBではないので、IFブロックです仕事はありません。何が必要な場合、SQLの2つのWHERE条件に問題がありますか? – Plutonix

答えて

1

この目的でCOALESCEを使用できます。

SELECT * 
FROM TblA 
WHERE COALESCE(Company, '')='Apple' 
    AND COALESCE(CompanyAdd, '') = 'Cupertino' 
    AND COALESCE(City, '') = '' 

このクエリのパフォーマンスは、おそらく恒星ではないことに注意してください。

関連する問題