저는 처음으로 SQL 세계에 입학 한 학생으로 to_somedatatype을 사용하는 방법에 대해 명확하고 이해할 수있는 문서를 찾을 수 없습니다 null)을 사용하여 UNION, INTERSECT 등의 누락 된 열을 대체 할 수 있습니다. 처음 몇 개의 프로젝트와 다음 쿼리를 위해 Oracle Database에서 빌드 된 HR 스키마를 사용하고 있습니다 (employee_id 번호 목록 만 얻습니다. 부양 가족과 함께있는 직원) :SQL 집합 연산자에서 to_char (null), to_number (null) 등을 사용하여 Oracle을 사용하는 경우
그러나 직원의 이름과 부양 가족의 생일을 포함하자마자 나는 막혔습니다. 이 변화는 에러없는 검색을 수행하지만 결과 (출력 "선택된 행이없는") 수득 아니오
SELECT e.employee_id "Employees with Dependents",
e.first_name,
e.last_name,
to_date(NULL) "Dependent Birthdate"
FROM employees e
INTERSECT
SELECT d.relative_id,
TO_CHAR(NULL),
TO_CHAR(NULL),
d.birthdate
FROM dependents d;
여러 TO_NUMBER와 TO_DATE 대체 변형 또는 to_varchar2는 null 평범한 널 및 TO_CHAR 행을 생성하는 데 실패한다.
내가 만들고자하는 것은 후견인의 사원 번호, 이름, 성 및 생년월일을 표시하는 각 부양 가족에 대한 단일 행입니다. 내 문제는 이러한 null 자리 표시자를 사용하고 일반적으로 집합 연산자를 제한적으로 이해하고 있다는 것을 확신합니다. (내 이해는 to_date (null)과 같은 null 자리 표시자를 사용하면 비교할 항목이 없으므로 비교 대상에 포함되지 않습니다.)
누군가가 제게 올바른 사용법을 설명해 주시겠습니까? 이 자리 표시 자?
그래서 당신이 말하고있는 것은 교차, 노동 조합, 또는 마이너스에서 TO_DATE (null)와 같은 것을 사용하는 것이 비교의 일부로서 null 값에 대한 검색처럼 작동한다는 것입니다 어떤 칼럼에? 예를 들어, 출생일이없는 부양 가족을 기록상으로 검색합니까? –
@ 트로이. . . 예. 실제로 '교차'연산은 거의 사용되지 않습니다. 'join '과'group by'에 대해 배우고 사용하는 것이 훨씬 더 유용 할 것입니다. –
우리는 이것에 대해서도 배우고 있습니다. 그러나 그 재료는 매우 기술적입니다 ... 예가 교차로에서 가능한 것처럼 보입니다. 당신의 도움을 주셔서 감사합니다. 회원님의 제안을 통해 바로 저에게 다시 돌아 왔습니다! –