<select id="selectList" parameterType="cmmnDefaultVO" resultType="ntcVO">
/* Ntc.selectList */
<![CDATA[
SELECT NT_SEQ ntSeq
, DATE_FORMAT(NT_RGST_DT,'%Y.%m.%d') ntRgstDt
, F_USER_NM(NT_RGST_ID) ntRgstId
, NT_ATCH_FILE_ID ntAtchFileId
, NT_TITLE ntTitle
, NT_CONT ntCont
, NT_STATE ntState
, NT_STA_DATE ntStaDate
, NT_END_DATE ntEndDate
, IF(NT_STATE = 'Y' AND NOW() >= NT_STA_DATE AND NOW() < NT_END_DATE, 'Y', 'N') as noticeYn
FROM T_NTC
WHERE NT_USE_YN='Y'
]]>
<include refid="Where"/>
<![CDATA[
ORDER BY noticeYn DESC, NT_SEQ DESC
LIMIT #{firstIndex} , #{recordCountPerPage}
]]>
</select>
NT_STATE 컬럼의 Y 값은 공지, N 값은 일반글로 구분됩니다.
IF 함수를 통해 현재 유효한 날짜의 공지들만 조회합니다.
IF(조건, 조건의 결과가 참일 경우, 조건의 결과가 거짓일 경우)
ORDER BY 에서 공지글과 공지가 아닌 글을 각각 정렬합니다. (포인트)