조회시에 where 조건에 acct_no like '12%' 해서 나온 결과값과 acct_no like '23%' 해서 나온 결과값을 모두 한번에 조회하고 싶은데..
이럴때 union 말고 where (acct_no like '12%' or acct_no like '23%') 방식 말고 다른 방법이 있나요?
답변 부탁드립니다.
by camela
[2011.01.12 15:44:19]
그게 최선이지 않을까요^^
by sql_master
[2011.01.12 15:48:49]
네.. 감사합니다. ^^
by sql_master
[2011.01.12 15:50:56]
제가 알기로는 or는 퍼포먼스 잘안나온다고 하는걸 어디서 들어서요..
경우에 따라서 다르기는 하지만. 다른 방법이 있나해서 여쭈었씁니다. ^^
by 마농
[2011.01.12 15:51:48]
1. union 이 아닌 union all 을 쓰셔야죠.
2. or 는 인덱스를 탈 수도 있고 안탈 수도 있습니다.
- index를 태우려면 /*+ USE_CONCAT */ 힌트와 함께 사용하세요.
3. WHERE SUBSTR(acct_no, 1, 2) IN ('12', '23') -- 인덱스 안타요
4. WHERE REGEXP_LIKE(acct_no, '^(12|23)') -- 인덱스 안타요
by sql_master
[2011.01.12 15:55:15]
아. 마농님 감사드립니다. ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.