0

「Staff01」に等しいapplicant_idを持つデータを選択しようとしていますが、次の条件を使用しています。

WHERE
IF (c.use_id_as_emp_no = '0', ccal.applicant_id, cc.contractor_idPK) LIKE '%staff01%'

クエリを実行しても結果が得られないということです。しかし、LIKEステートメント(s)の文字列の最初の文字を削除すると、結果が表示されます。

もう1つは、上記の条件でIFステートメントを削除すると、次のようになります。

WHERE
ccal.applicant_id LIKE '%staff01%'

apply_idStaff01のデータが表示されます。

LIKE関数を誤動作させるのはIFステートメントですか?私を助けてください。私はこれに苦労しています。どうもありがとう。

編集:比較でLCASE()を使用して解決

WHERE
IF (c.use_id_as_emp_no = '0', LCASE(ccal.applicant_id), cc.contractor_idPK) LIKE LCASE('%staff01%')
4

1 に答える 1

0

試す

where IF (c.use_id_as_emp_no = '0', ccal.applicant_id, cc.contractor_idPK) 
COLLATE latin1_general_ci LIKE '%staff01%'
于 2012-04-25T09:40:09.663 に答える