초보라서 질문의 명확성이 떨어지는 점 양해 부탁 드리고자 합니다.
테이블명 _ tb_manual
컬럼 : no / eng / han /use/ dept /per_num
조회 쿼리를 작성해야 하는데요, 입력창에 한글이 입력되던 영문이 입력되던 상관없이 입력된 값을 보고서 테이블에서 해당 컬럼데이터를 갖고 와야하는 쿼리입니다.
입력창의 필드명 : sh_ name
즉 저 sh_name입력창에 영문이든 한글이던 입력하고 조회 버튼을 누르면 조회결과가 나와야 합니다.
SELECT A.UM,
,A.HAN,
,A.ENG ,
,A.per_name
,A.dept
B.DEPTNM,
C.KORNM
FROM TB_PRRODUCT_MANUAL A
LEFT JOIN TB_dept B
ON A.dept = B.dept
where 1 = 1
(아래부분 쿼리는 제가 작성한것입니다.)
한글/영문-대소문자 구분없이 검색하기
(영문은 대소문자로 필드에 기록해도 검색시에는 소문자통합해서 검색되도록
<isNotEmpty property="PRODUCT_ENG">
A.PRODUCT_ENG || (lower(PRODUCT_ENG) LIKE '%' || lower ('aa') || '%' || chr(10) || chr(12) || ' ' || '') = #PRODUCT_ENG#
</isNotEmpty>
<isNotEmpty prepend="AND" property="PRODUCT_HAN">
A.PRODUCT_HAN || = #PRODUCT_HAN#
</isNotEmpty>
----> 결론 ) 한글검색도 영문검색도 되지않고 있습니다. ㅠㅠㅠㅠ
도움 부탁드립니다...ㅠㅠ
프로그램 언어로 쿼리를 돌려보지 마시고
쿼리 툴로 직접 접속해서 쿼리를 돌려 보세요.
프로그래밍 따로 쿼리 따로 배우셔야 합니다.
INSTR(a, b) a 문자열에서 b 문자열의 위치를 찾음
0 이면 b 가 없다는 것이고 있다면 위치가 숫자로 나옴
INSTR(한글) + INSTR(영문) = 0 이면 찾는 문자가 없다는 뜻
INSTR(한글) + INSTR(영문) > 0 이면 찾는 문자가 있다는 뜻
INSTR(한글) + INSTR(영문) != 0 이면 찾는 문자가 있다는 뜻(!= 같지 않다는 뜻)
> 0 대신 != 0 을 사용한 이유는 프로그램 언어에서 > 기호 때문에 에러가 날 수 있기 때문.