programing

Oracle SQL Select의 행 수?

closeapi 2023. 9. 3. 16:17
반응형

Oracle SQL Select의 행 수?

오라클에서 한 번에 몇 개의 레코드가 반환되었는지 알고 싶습니다.현재 저는 두 가지 질문을 하고 있습니다.

SELECT COUNT(ITEM_ID) FROM MY_ITEMS;

SELECT * FROM MY_ITEMS;

나는 COUNT를 알아야 하지만 두 가지 질문을 하는 것을 싫어합니다.방법이 있습니까?

SELECT * FROM MY_ITEMS 

그 안에 얼마나 많은 기록이 있는지 알아내면 되는 겁니까?

방법이 있습니까?

SELECT * FROM MY_ITEMS 

그 안에 얼마나 많은 기록이 있는지 알아내면 되는 겁니까?

이와 같은 정확한 순서로 하려면 클라이언트의 모든 레코드를 가져와 해당 레코드 수를 계산할 수 있습니다(거의 모든 클라이언트 라이브러리가 이에 대한 기능을 제공합니다).

다음 작업도 수행할 수 있습니다.

SELECT  i.*, COUNT(*) OVER ()
FROM    my_items i

각 레코드와 함께 카운트를 반환합니다.

PL/SQL에서 작업하는 경우 SQL%ROWCOUNT 유사 변수를 사용하여 마지막 SQL 문의 영향을 받는 행 수를 가져올 수 있습니다.수고를 덜 수 있을 겁니다.

이 정도면 효과가 있을 겁니다.

WITH 
base AS
(
    SELECT *
    FROM MY_ITEMS
)
SELECT (SELECT COUNT(*) FROM base) kount,
       base.*
FROM base

테이블 별칭에 대해 잘 모르겠습니다. Oracle에서는 'AS'가 필요한지 여부가 기억나지 않습니다.하지만 이것은 효과가 있을 것입니다.

select mt.*, c.Cntr
    from MyTable mt
        , (select COUNT(*) as Cntr
               from MyTable
           ) c

언급URL : https://stackoverflow.com/questions/2884183/number-of-rows-in-oracle-sql-select

반응형