2017-12-30 57 views
-1

case 문을 사용하여 열을 업데이트해야하지만 매개 변수를 case 문으로 설정하는 방법은 무엇입니까? 내 코드는 다음과 같습니다.CASE 문을 사용하는 SQL에서 PreparedStatement를 사용하는 방법

PreparedStatement updateAkaunAmanahPs = con.prepareStatement("" 
           + "UPDATE GL_AKAUN_AMANAH " 
           + " SET AMAUN_YOBCR = (CASE WHEN AMAUN_YOBCR IS NOT NULL THEN AMAUN_YOBCR = AMAUN_YOBCR + ? ELSE ? END) " 
           + " WHERE PKID = ?"); 

updateAkaunAmanahPs.setBigDecimal(1, ytddr.subtract(ytdcr)); 

// if the case statement is true, how about this parameter ? 
updateAkaunAmanahPs.setBigDecimal(2, ytddr.subtract(ytdcr)); 

updateAkaunAmanahPs.setLong(3, 30); 

아이디어가 있으십니까?

답변

2

그냥 자리 (?), 귀하의 경우, 당신은 3 개 자리가의 수를 고려해야합니다, 당신은

updateAkaunAmanahPs.setBigDecimal(1, ytddr.subtract(ytdcr)); // for first placeholder 
updateAkaunAmanahPs.setBigDecimal(2, ytddr.subtract(ytdcr)); // for second 
updateAkaunAmanahPs.setLong(3, 30); // for third 
(같은 순서로에 ) 적절하게 설정해야