반응형
SQL IN 1000 조항 항목 제한
SQL IN 절에 1000개 이상의 항목을 넣을 수 있습니까?Oracle 데이터베이스가 이를 처리할 수 없다는 문제가 발생하고 있습니다.
그렇다면 SQL IN 절에 1000개 이상의 항목을 넣으려면 어떻게 해야 합니까?
그렇지 않으면 어떻게 해야 하나요?
다른 답변(또는 다른 답변 질문)에서는 언급되지 않은 다른 해결 방법이 있습니다.
다음과 같은 문구가 있는 경우x in (1,2,3)
라고 고쳐 쓸 수 있다(1,x) in ((1,1), (1,2), (1,3))
1000 요소 제한은 적용되지 않습니다.지표를 달고 테스트를 해봤습니다.x
또한 Oracle이 액세스 술어와 범위 스캔을 사용하고 있다는 보고서를 여전히 설명하십시오.
IN 구를 INSER JOIN 구로 변환해야 합니다.
이와 같은 쿼리를 변환할 수 있습니다.
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
퍼포먼스도 많이 얻을 수 있습니다.
같은 변수에 대해 여러 "IN" 문을 사용할 수 있습니다.
예:
select val
from table
where val in (1,2,3,...)
or
val in (7,8,9,....)
임시 테이블을 생성할 여유가 없는 경우 WITH 절을 사용하여 시뮬레이션할 수 있습니다.
with t as (
select 1 val from dual
union all select 2 from dual
union all select 3 from dual
...
union all select 5001 from dual
union all select 5002 from dual
)
select *
from mytable
where col1 in (select val from t)
물론, 내 테이블에도 같이 앉을 수 있어
나는 Gordy의 대답이 가장 마음에 든다. 단지 다른 방법을 보여주는 것뿐이다.
다른 방법:
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
--...
)
언급URL : https://stackoverflow.com/questions/4722220/sql-in-clause-1000-item-limit
반응형
'programing' 카테고리의 다른 글
json에 java (0) | 2023.03.04 |
---|---|
WordPress 위젯의 동적 입력 필드 (0) | 2023.03.04 |
서로 덮어쓰기 CSS 미디어 쿼리 (0) | 2023.03.04 |
AngularJS set global ngModelOptions (0) | 2023.02.27 |
How to convert postgres json to integer (0) | 2023.02.27 |