where절 질문 좀 드릴께요~^^ 0 5 2,561

by 김동우 where [2008.05.29 20:19:44]


where절에서요

substr(rjsg_ac_mkdt, 5, 2) between ’01’ and ’03’   이 문장을 적으면 실행이 되는데요

decode(1,1,(substr(rjsg_ac_mkdt, 5, 2) between ’01’ and ’03’)) 처럼 decode를 씌우면

괄호 에러가 발생합니다..

 

이유 좀 가르쳐 주세요 ~~^^;;

by 현 [2008.05.29 20:37:18]
decode문이 이상하지 않나요?
문법에 안맞는거 같은데요...
decode를 왜 쓰신건가요?

by 김동우 [2008.05.29 20:43:45]
decode(1,1,(substr(rjsg_ac_mkdt, 5, 2) between '01' and '03')) 이 decode문법이 이상한가요?

'현' 님 어디가 이상하죠??? ^^;;

decode( ?, 1, (substr(rjsg_ac_mkdt, 5, 2) between '01' and '03')
, 2, (substr(rjsg_ac_mkdt, 5, 2) between '04' and '06')
, 3, (substr(rjsg_ac_mkdt, 5, 2) between '07' and '09')
, 4, (substr(rjsg_ac_mkdt, 5, 2) between '10' and '12'))

분기로 조건을 줄려고 이렇게 만들어봤습니다.

by 현 [2008.05.29 21:26:25]
디코드 문 안에 between '01' and '03' 이것이 들어가는 것이 좀 이상하네요.
(decode( ?, 1, (substr(rjsg_ac_mkdt, 5, 2) ) between '01' and '03' ) or
(decode( ?, 1, (substr(rjsg_ac_mkdt, 5, 2) ) between '04' and '06' ) or

이런 식으로 쓰시면 안되나요?

by 마농 [2008.05.30 08:45:46]
거의 모든 함수들이 반환하느것은 특정 값입니다.
조건절을 반환하지는 않지요. 잘못된 사용법입니다.
분기를 구하는 거라면
WHERE CEIL(SUBSTR(rjsg_ac_mkdt, 5, 2)/3) = ?
또는
WHERE TO_CHAR(TO_DATE(rjsg_ac_mkdt,'yyyymmdd'),'Q') = ?

by 김동우 [2008.05.30 09:30:30]
아... 함수안에 조건절을 반환하면 안되는 거군요...
아직 기초가 부족한 아이라... ^^
현님 마농님 감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입