데이터베이스 쿼리 결과를 반환하는 Oracle 저장 프로 시저를 작성하고 있습니다. 쿼리가 결과를 생성하지 않으면 두 번째 쿼리를 해당 위치에서 실행해야합니다.Oracle DB : 첫 번째 쿼리가 비어 있으면 두 번째 쿼리를 반환하십시오.
INSERT INTO @TableVar
SELECT <joinQuery1>;
IF (SELECT COUNT(*) FROM @TableVar) > 0
BEGIN
SELECT * FROM @TableVar; -- returns <joinQuery1>
END
ELSE
SELECT <joinQuery2>; --returns <joinQuery2>
END
그러나, 나는 오라클에서 같은 작업을 수행하는 방법 주위에 내 머리를 정리 할 수 없습니다
는 SQL 서버에서, 나는 다음과 같은 사용하여이 일을 수행 할 수 있습니다. 당신이 활용할 수
또는 오히려, 내가 DRY를 위반하지 않고 그것을 할 수있는 방법을 찾을 수 없습니다 같은 것을 고려하시기 바랍니다. (SELECT) UNION ALL (SELECT WHERE SELECT COUNT () = 0)가 작동해야하지만 최후의 수단으로 만 사용합니다. –