파라미터로 컬럼 이름(모두 검색할때는 all), 검색할 단어가 넘어와요
그래서 저는
select * from user where
(case when 컬럼이름 = 'id'
then id like '%'||검색단어||'%'
when 컬럼이름 = 'name'
then name like '%'||검색단어||'%'
when 컬럼이름 = 'all'
then ((id like '%'||검색단어||'%') OR (name like '%'||검색단어||'%'))
end);
이렇게 될것 같았는데 안되서
decode써서 안에 넣어도 봤는데 안되더라구요.....
처리할 방법이 없을까요??
두분다 정말 감사합니다. 이렇게 소스를 통채로 받을 의도는 아니었는데..=_=a
사실 저는 declare begin end 이런거 써야될줄 알고 검색해서 엄청난 참고자료들을 봤지만.... 기본이 안돼있으니 쓸 방법자체를 모르겠더라구요 ㅠㅠ
비주류님 when에서는 비교문을 써야되는게 아닌가요? and 로 like 검색을 했는데 굉장히 잘 동작하네요.. when 절에서는 true false를 반환하는 문장을 써야되는걸로만 기억을 하고 있었는데 신기합니다..
마농님 INSTR이 저는 index를 반환하는함수로 기억을 하고 있었는데 이것도 신기하네요 ㅠㅠ
마지막으로 두분다에게 궁금한게 END 에 비교식을 넣어두셨더라구요 END = 1 END > 0 이것 둘다 처음 보는건데 만약에 1이아니거나 0보다 크지 않으면 아무것도 반환하지 않는군요 하.....
이런저런 말이 길어졌는데 정말 감사합니다!!!