Oracle SQL Select中的行数?

时间:2010-05-21 17:28:58

标签: sql oracle select count

我需要知道在oracle中的select中返回了多少条记录。目前,我做了两个查询:

SELECT COUNT(ITEM_ID) FROM MY_ITEMS;

SELECT * FROM MY_ITEMS;

我需要知道COUNT但我讨厌做两个查询。有办法吗?

SELECT * FROM MY_ITEMS 

然后找出那里有多少条记录?

4 个答案:

答案 0 :(得分:31)

  

有办法吗?

SELECT * FROM MY_ITEMS 
     

然后找出那里有多少条记录?

如果您希望它按照这个确切的顺序,您可以获取客户端上的所有记录并计算它们的数量(几乎所有客户端库都提供了一个功能)。

你也可以这样做:

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

,它会将计数与每条记录一起返回。

答案 1 :(得分:3)

如果您正在使用PL / SQL,则可以使用SQL%ROWCOUNT伪变量来获取受上一个SQL语句影响的行数。可能会省你一些努力。

答案 2 :(得分:2)

这应该可以解决问题。

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

答案 3 :(得分:0)

我只是不确定表别名,我不记得在Oracle中是否需要'AS'。但这应该有用。

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