私はOracleで動作するこのクエリを持っていますが、Visual Studioでいくつかの問題があるため、Coalesceを使用するように変換します。Oracle SQLはcoalesceを使用します
SELECT *
FROM a Left Join b on b.institution_code=a.institution_code
WHERE
(upper(a.Login_Name)=UPPER('%' || :Login_Name || '%') OR :Login_Name IS NULL)
AND (upper(a.Display_Name) Like UPPER('%' || :Display_Name || '%') OR :Display_Name IS NULL)
AND (upper(a.Email_Address)=UPPER(:Email_Address) OR :Email_Address IS NULL)
AND ((a.institution_code=:institution_code) OR :institution_code IS NULL)
AND (upper(b.institution_desc) Like UPPER('%' || :institution_desc || '%') OR :institution_desc IS NULL)
これは
WHERE
Upper(a.Display_Name) LIKE Upper('%' || COALESCE(:Display_Name,a.Display_Name) || '%')
AND upper(a.Login_Name)=Upper(COALESCE(:Login_Name,a.Login_Name))
AND upper(a.Email_Address)=Upper(COALESCE(:Email_Address,a.Email_Address))
に動作しますが、私は、クエリからどんな結果を得ることはありませんCOALESCEを使用するinstitution_codeとinstitution_descフィールドを変換しようとします。
私はこれらの行を追加するとき
AND a.institution_code=COALESCE(:institution_code,a.institution_code)
AND (Upper(b.institution_desc) LIKE Upper('%' || COALESCE(:institution_desc,b.institution_desc) || '%'))
申し訳ありませんが、これは機能しませんでした。 –