Ms-Accessにブール値を返すクエリがあります。ただし、実行すると「クエリ式に演算子がありません」と表示されます
SELECT case when exists(select due_amt from PaymentDetails where iss_id=20 and user_id=1 and ten_no=1) then cast(1 as bit) else cast(2 as bit) end
私はどこが間違っていますか?
Case Whenステートメントを IIf ステートメントに記述する必要があります。このクエリはブール値を返します。
SELECT IIf(Nz(due_amt,0) <> 0,True,False) as blndue from PaymentDetails where iss_id=20 and user_id=1 and ten_no=1
編集: Is Null関数は Nz よりも堅牢である
と思います。書き直しはこちら
SELECT IIf(IIf(due_amt Is Null,0,due_amt) <> 0,True,False) as blndue from PaymentDetails where iss_id=20 and user_id=1 and ten_no=1
編集 2: ADO には Null 値の特殊なケースがあります。「= Null」条件で Null 値をテストできます。このリンクからこの情報を取得しました。
http://www.techrepublic.com/article/10-tricks-for-handling-null-values-in-microsoft-access/6125114
ここに最終的な書き直しがあります...
SELECT IIf(IIf(due_amt = Null,0,due_amt) <> 0,True,False) as blndue from PaymentDetails where iss_id=20 and user_id=1 and ten_no=1