[SQL] SQL IN 절 1000 항목 제한
SQLSQL IN 절 1000 항목 제한
SQL IN 절에서 1000 개 이상의 항목을 넣을 수 있습니까? 우리는 우리의 오라클 데이터베이스를 처리 할 수없는 문제를 받고있다.
그렇다면, 우리가 어떻게 SQL IN 절에서 1000 개 이상의 항목을 배치해야합니까?
그렇지 않다면, 그 밖의 무엇을 나는 할 수 있습니까?
해결법
-
==============================
1.당신은 INNER에 IN 절은 절을 가입 변환해야합니다.
당신은 INNER에 IN 절은 절을 가입 변환해야합니다.
당신은 이와 같은 쿼리를 변환 할 수 있습니다
SELECT foo FROM bar WHERE bar.stuff IN (SELECT stuff FROM asdf)
이 다른 같은 쿼리한다.
SELECT b.foo FROM ( SELECT DISTINCT stuff FROM asdf ) a JOIN bar b ON b.stuff = a.stuff
또한 성능을 많이 얻을 것입니다
-
==============================
2.다른 답변 (또는 다른 대답 질문) 어떤에서 언급되지 않도록이 또 다른 해결 방법이있다 :
다른 답변 (또는 다른 대답 질문) 어떤에서 언급되지 않도록이 또 다른 해결 방법이있다 :
(1,2,3) 중의 X와 같은 문 상관은 ((1,1), (1,2), (1,3)) 및 1000 요소 한계 (1, X)로 다시 쓸 수는 더 이상 대다. 나는 X에 대한 인덱스로 테스트하고 설명했습니다 계획은 여전히 오라클 액세스 술어를 사용하여 스캔 범위를보고합니다.
-
==============================
3.우리는 같은 변수에 대한 하나 이상의 "IN"문을 가질 수 있습니다.
우리는 같은 변수에 대한 하나 이상의 "IN"문을 가질 수 있습니다.
예를 들어 :
select val from table where val in (1,2,3,...) or val in (7,8,9,....)
-
==============================
4.또 다른 방법:
또 다른 방법:
SELECT COL1, COL2, COL3 FROM YOUR_TABLE WHERE 1=1 AND COL2 IN ( SELECT VAL1 as FAKE FROM DUAL UNION SELECT VAL2 as FAKE FROM DUAL UNION SELECT VAL3 as FAKE FROM DUAL --... )
from https://stackoverflow.com/questions/4722220/sql-in-clause-1000-item-limit by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 구문의 경우 민감한인가? (0) | 2020.03.16 |
---|---|
[SQL] 어떻게 된 PreparedStatement의 SQL을받을 수 있나요? (0) | 2020.03.16 |
[SQL] 오라클 SELECT TOP 10 기록 (0) | 2020.03.16 |
[SQL] IN 대 또는 WHERE 절 SQL에 (0) | 2020.03.16 |
[SQL] 어떻게 오라클에서 상위 1을해야합니까? (0) | 2020.03.16 |