데이터베이스에없는 데이터 집합에서 누락 된 필드를 채울 Oracle 쿼리를 작성하려고합니다. 이다변경 상수가있는 Oracle 쿼리를 작성하십시오.
, 나는
+----+-----+-----+
|Name|Name2|Name3|
+----+-----+-----+
|A |1 | |
+----+-----+-----+
|B |1 | |
+----+-----+-----+
|C |2 | |
+----+-----+-----+
|Z |39 | |
+----+-----+-----+
|... |... |... |
+----+-----+-----+
|... |... |... |
+----+-----+-----+
|... |... |... |
+----+-----+-----+
|QF |893 | |
+----+-----+-----+
이름이 데이터베이스에 고유 한, 그리고 데이터를해야합니다.
Name2는 고유하지 않으며 데이터베이스 내부와 외부에 모두 존재합니다.
Name3이 (가) 알려지지 않았고 고유 한 것이 아니며 Name2 (Name2와 Name3 간의 매핑이 일대일 임)에 정의되어 있으며 데이터베이스에 있습니다.
SQL에서 단일 쿼리는 다음과 같이 모델링 할 수,
SELECT MY_TABLE.Name3 FROM MY_TABLE WHERE MY_TABLE.Name2='1'
그리고 그 쿼리 내 데이터의 처음 두 행으로 반환대로 배치 알 것입니다.
그럼 내가 작성하고 개별 선택 문의 수천을 실행하고 문 NAME2가 반복하지만 많은 시간을 반환 무엇을 복사 할 필요 나머지 행이 비록
SELECT MY_TABLE.Name3 FROM MY_TABLE WHERE MY_TABLE.Name2='2'
을 위해 그것을 반복 할 수있다.
누락 된 열을 채우기 위해 단일 SELECT 문을 작성하는 방법이 있습니까? 이름 열이 데이터베이스에없고 쿼리 작성에 걸리는 시간이 염려되지 않는다는 것을 명심하십시오.
이상적인 쿼리는 이미 잘 데이터 세트를 반환
SELECT Name, MY_TABLE.Name2, MY_TABLE.Name3 FROM MY_TABLE WHERE
(MAGICALLY_SET Name = 'A' AND
Name2 = '1') OR
(MAGICALLY_SET Name = 'B' AND
Name2 = '1') OR
(MAGICALLY_SET Name = 'C' AND
Name2 = '2')
...
(MAGICALLY_SET Name = 'QF' AND
Name2 = '893');
이런 일이 될 것입니다.
+----+-----+-----------------+
|Name|Name2|Name3 |
+----+-----+-----------------+
|A |1 |returned_value1 |
+----+-----+-----------------+
|B |1 |returned_value1 |
+----+-----+-----------------+
|C |2 |returned_value54 |
+----+-----+-----------------+
|Z |39 |returned_value87 |
+----+-----+-----------------+
|... |... |... |
+----+-----+-----------------+
|... |... |... |
+----+-----+-----------------+
|... |... |... |
+----+-----+-----------------+
|QF |893 |returned_value439|
+----+-----+-----------------+
나는 상수 이름 값을 변경하고 이중을 사용하는 select 문을 작성하려고 시도했지만 올바르게 추적하고 있다고 생각하지 않습니다.
이름이 테이블에있는 경우 쿼리를 작성할 수 있음을 알고 있습니다. 그러나 새 테이블을 만들고 Name/Name2 데이터를 모두 삽입 할 수는 없습니다.
아이디어가 있으십니까?
당신이 검색 할 덜 이상적인 솔루션보다 함께 종료 '이름'열의 데이터? 또한, 어떻게'Name'이'Name2'와 함께 갈지 결정할 수 있습니까? – Sebas
CSV 파일입니다. – Kobaj
먼저 모든 csv를 테이블에로드하는 방법은 무엇입니까? 오라클은 이것을 위해 매우 편리한 로더를 가지고 있습니다. 그것은 한 줄입니다. – Sebas