여러필드를 같은 키워드로 like로 검색할시 order 방법 질문입니다. 0 1 1,588

by 새우볶음 [Oracle 기초] 오라클 oracle [2019.04.03 13:38:48]


상품테이블에 상품명

브랜드명 필드가 있습니다

select * from 상품테이블 where

상품명 like '%키워드%' or  브랜드명 like '%키워드%';

 

이런식으로 결과를 도출하려고합니다.

문제는 키워드가 상품명에 포함되는 데이터들을 먼저 보여주도록 sorting해주고 싶은데 어떤 방법이 있을까요?

 

union밖에 생각이 안나긴하는데 더 좋은 방법이 있는지 궁금합니다.

 

by 마농 [2019.04.03 14:02:46]
WITH 상품테이블 AS
(
SELECT '키워드' 상품명, '키워드' 브랜드명 FROM dual
UNION ALL SELECT '키워드', '키워도' FROM dual
UNION ALL SELECT '키어드', '키워드' FROM dual
UNION ALL SELECT '키위드', '키워두' FROM dual
)
SELECT *
  FROM 상품테이블
 WHERE INSTR(상품명  , '키워드') > 0
    OR INSTR(브랜드명, '키워드') > 0
 ORDER BY SIGN(INSTR(상품명  , '키워드')) DESC
        , SIGN(INSTR(브랜드명, '키워드')) DESC
;

 

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