ID가 '2'인 책과 동일한 선반에있는 책의 수를 보여주는 SQL보기입니다. 기본적으로 ID가 '2'가 아닌 책 ID를 입력 할 수있는 절차로 전환하는 간단한 방법이 있습니까? 나는 아직 절차에 모험하지 않았는데,이 특별한 절차는 많은 양의 코딩을 필요로 할까?뷰에서 프로 시저를 생성하는 SQL
하위 표는 책 테이블에 선반 ID가 있지만 책꽂이에 책 ID가 들어 있지 않기 때문입니다.
ID가 '2'인 책과 동일한 선반에있는 책의 수를 보여주는 SQL보기입니다. 기본적으로 ID가 '2'가 아닌 책 ID를 입력 할 수있는 절차로 전환하는 간단한 방법이 있습니까? 나는 아직 절차에 모험하지 않았는데,이 특별한 절차는 많은 양의 코딩을 필요로 할까?뷰에서 프로 시저를 생성하는 SQL
하위 표는 책 테이블에 선반 ID가 있지만 책꽂이에 책 ID가 들어 있지 않기 때문입니다.
오라클 경우, 다음과 같은 것을 시도해보십시오
PROCEDURE GET_BOOK_COUNT(
i_book_id IN books.book_id%TYPE,
o_count OUT NUMBER)
AS
BEGIN
SELECT COUNT(*) INTO o_count FROM books
WHERE shelf_id =
(SELECT shelf_id FROM books WHERE book_id = i_book_id);
END GET_BOOK_COUNT;
그러나 더 나은로 procedure
을 그것에게 function
을 대신하기 :
FUNCTION GET_BOOK_COUNT(
i_book_id IN books.book_id%TYPE)
RETURN NUMBER
IS
l_count Number;
SELECT COUNT(*) INTO l_count FROM books
WHERE shelf_id =
(SELECT shelf_id FROM books WHERE book_id = i_book_id);
RETURN l_count;
END GET_BOOK_COUNT;
이 경우에는 해당 값을 직접 반환하는 함수를 선호합니다. Out 매개 변수는 때로는 조금 까다 롭습니다. 특히 결과를 더 큰 SQL 문의 일부로 다시 사용하려는 경우가 있습니다. –
@a_horse_with_no_name 동의 : OP가 절차에 대해 문의 했으므로 이에 대해 언급했습니다. 나는 지금 대답을 업데이트 할 것이다. –
코드는 다음과 같은 것을 볼 수 있었다 : - 당신이 원하는 저장 프로 시저를 작성해야합니다
CREATE PROCEDURE spBooks(@BookID integer)
AS
SELECT COUNT(*) FROM books
WHERE shelf_id = (SELECT shelf_id FROM books WHERE book_id = @BookID)
GO;
.
왜 부질? 같은 테이블에서 두 가지를 모두 조회하고 있습니다. –
게시물을 편집했습니다. 이는 서적 테이블에 서가 ID가 있지만 서적에 서적 ID가 들어 있지 않기 때문입니다. – Jaqualembo