by 새우볶음 [Oracle 기초] 오라클 oracle [2019.04.03 13:38:48]
상품테이블에 상품명
브랜드명 필드가 있습니다
select * from 상품테이블 where
상품명 like '%키워드%' or 브랜드명 like '%키워드%';
이런식으로 결과를 도출하려고합니다.
문제는 키워드가 상품명에 포함되는 데이터들을 먼저 보여주도록 sorting해주고 싶은데 어떤 방법이 있을까요?
union밖에 생각이 안나긴하는데 더 좋은 방법이 있는지 궁금합니다.
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 ;