쿼리문 작성 중입니다 ㅠ 그런데 검색조건이 제대로 나오지 않아 고생이네요 ㅠ 조언 부탁드립니다 ㅠ
디폴트 조건으로는 notice_perm_flag = 'Y' 입니다.(기간이 없고 검색시 무조건 검색)
조건은 notice_period_from와 notice_period_to이 입력되있고 나머지 조건이 null이면
날짜에 해당하는 내용에 해당하는 리스트가 나와야 합니다.
나머지 검색조건에서는 타이틀, 컨텐츠, 작성자를 검색시 조건에 해당하는것만 나와야 합니다. 조언 부탁드립니다 ㅠ
SELECT
A.notice_seq, A.notice_title, A.notice_contents, A.notice_importance, A.notice_period_from, A.notice_period_to,
A.notice_perm_flag, A.created_by, A.created_date, A.last_updated_by, A.last_updated_date, B.user_id, B.user_name
FROM tocs_efb_notice A
LEFT JOIN tocs_notam_userinfo B
ON A.created_by = B.user_id
WHERE 1=1
<if test="notice_period_from != null and notice_period_from != ''">
AND A.notice_period_from <![CDATA[<=]]> #{notice_period_to}
</if>
<if test="notice_period_to != null and notice_period_to != ''">
AND A.notice_period_to <![CDATA[>=]]> #{notice_period_from}
</if>
<if test="notice_contents == '' and notice_title != null and notice_title != ''">
AND UPPER(A.notice_title) LIKE CONCAT('%',UPPER(#{notice_title}),'%')
</if>
<choose>
<when test="notice_contents != null">
AND UPPER(A.notice_contents) LIKE CONCAT('%',UPPER(#{notice_contents}),'%')
</when>
<otherwise>
OR A.notice_perm_flag = 'Y'
</otherwise>
</choose>
<if test="notice_contents == '' and created_by != null and created_by != ''">
AND UPPER(A.created_by) LIKE CONCAT('%',UPPER(#{created_by}),'%')
</if>
<choose>
<when test="notice_contents == '' and created_by == null and notice_title == null">
OR A.notice_perm_flag = 'Y'
</when>
<otherwise>
OR A.notice_perm_flag = 'N'
</otherwise>
</choose>
ORDER BY notice_seq |