오라클 9g LIKE 함수 관련 질문입니다ㅜㅜ 0 10 3,251

by 아링스 [SQL Query] SQL LIKE 쿼리 QUERY 오라클 ORACLE [2017.07.14 14:48:21]


오라클 초보자 입니다 ㅜㅜ

다름이 아니라 LIKE 함수를 이용해서 ABC라는 단어중에서 B,C단어는 제외시키고 A만 출력가능하게 조건 줘서 처리중인데 처리 방법을 모르겠네요.

조건을 "컬럼 LIKE '%A%' AND ((컬럼 NOT LIKE '%B%') OR (컬럼 NOT LIKE '%C%'))" 줬는데 잘못한걸까요 ㅜㅜ

저 위처럼 주면 자꾸 B,C도 같이 나오네요...

by 마농 [2017.07.14 14:50:43]

질문이 모호하네요.
몇가지 문자들을 예로 들어서
어떤 문자가 출력되야 하고 어떤 문자가 제거되야 하는지
출력형태는 어떻게 되야 하는지 등을
예시자료를 통해 질문해 주세요.


by 아링스 [2017.07.14 15:02:35]

아이고 죄송합니다. 예를 들자면 

row값이 사과, 사과열매 사과나무 라는 3가지 값이 있는데

저는 사과라는 row값만 출력을 하고싶은데 like '%사과%' 조건을 주면 사과열매, 사과나무 값까지 출력해서

컬럼 LIKE '%사과%' AND ((컬럼 NOT LIKE '%열매%') OR (컬럼 NOT LIKE '%나무%')) 라고 줬는데

제가 원하는 사과라는 row값이 안나오네요..ㅜㅜ


by 주킹 [2017.07.14 15:10:26]

사과라는 값만 출력하고픈데 왜 like를 쓰시는지.. =로 검색하면 되는거 아닌가요

예제만 본다면


by 마농 [2017.07.14 15:10:36]

LIKE 가 아닌 이퀄(=) 검색 하시면 되는게 아닌지요?


by 아링스 [2017.07.14 15:12:18]

전달하기 쉽게 저렇게 예시를 들어서 표현한거고

실제로는 문장중에서 특정 단어가 들어간 문장을 뽑아내기 위해서 조건을 걸어서 추출하는겁니다 ㅜㅜ


by 마농 [2017.07.14 15:16:27]

전달하기 쉽게 저렇게 예시를 들어서 표현한거라면? 목적 달성에 실패하셨습니다.
이해 하기 어렵게 모호한 표현 일색이네요.
명확한 근거를 들어 주셔야 합니다.

특정 단어가 들어간 문장이라면? 띄어쓰기 기준으로 보면 되는 것인지?
사과를 검색했을 때 딱 사과가 포함된 단어만 검색해야 한다는 건가요?
사과열매라든가, 사과주스, 청사과 등은 빼야 한다는 것인데?
그럼 나는 사과를 좋아한다. 처럼 조사가 들어가는 것은 어찌 하나요?
문장 중에 "사과"만 딸랑 나오는 문장은 드믈죠. 보통 조사가 함께 붙죠.


by 아링스 [2017.07.14 16:16:01]

헷갈리게 표현해서 죄송합니다 ㅜㅜ

정확히는 소견결과를 뽑아내야하는데 row값에 저장 된 위암 소견결과만 뽑아야합니다.

단어를 기준으로 LIKE '%위암%'을 조건을 주면 위암의심, 위암의증 소견결과까지 나와버리거든요..

그리고 소견을 사람이 입력하는거다보니 위암 의심, 위암의심, 위암의증, 위암 의증 등등 띄어쓰기도 엄두해야합니다..

조건 주기도 상당히 애매하기에 확실하게 빼야할 단어를 NOT LIKE을 줘서 빼려고 하니 제가 원하는 결과가 안나오네요..

 


by 마농 [2017.07.14 16:36:53]

검색단어와 빼야할 단어가 확실하다면?
작성하신 조건 중 OR 부분만 AND 로 바꾸시면 됩니다.


by jkson [2017.07.14 15:27:56]

1행 '사과'
2행 '사과열매'
3행 '사과나무'
4행 '사과상자'

라는 글자가 있을 때 '사과'라는 글자만 들어가고 '열매' '나무'는 안 들어가야한다.(1행,4행 검색)

라는 의미로 위의 쿼리를 만들었다면

컬럼 LIKE '%사과%' AND NVL(컬럼,'*') NOT LIKE '%열매%' AND NVL(컬럼,'*') NOT LIKE '%나무%'

라야겠죠.

((컬럼 NOT LIKE '%B%') OR (컬럼 NOT LIKE '%C%'))
 

 
컬럼 LIKE '%B%' AND 컬럼 LIKE '%C%'

NOT (컬럼 LIKE '%B%' AND 컬럼 LIKE '%C%') -- 부정연산자를 빼먹었네요;;

와 동일한 의미입니다.


by 아링스 [2017.07.14 16:43:24]

이렇게 하니 되네요 ㅠㅠ 답변 감사합니다.

더불어서 제 짧은 지식이 정말 부끄럽네요 ㅜㅜ 많이 공부해야겠습니다...

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입