我需要知道在oracle中select中返回了多少條記錄。目前,我做兩個查詢:Oracle SQL Select中的行數?
SELECT COUNT(ITEM_ID) FROM MY_ITEMS;
SELECT * FROM MY_ITEMS;
我需要知道COUNT,但我討厭做兩個查詢。有沒有辦法:
SELECT * FROM MY_ITEMS
然後找出有多少記錄在那裏?
我需要知道在oracle中select中返回了多少條記錄。目前,我做兩個查詢: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
,這將返回與每個記錄一起計數。
我只是不確定表的別名,我不記得在Oracle中是否需要'AS'。但這應該工作。
select mt.*, c.Cntr
from MyTable mt
, (select COUNT(*) as Cntr
from MyTable
) c
OP特別要求一種不需要兩個查詢的方法;將這兩個查詢合併爲一個,這仍然完成相同數量的額外不必要的工作,這不是一個好的答案,恕我直言。 – 2012-08-27 01:56:08
如果你在PL/SQL時,您可以使用SQL%ROWCOUNT僞變量獲得受上一SQL語句的行數。可以爲你節省一些努力。
如何評估/得到這個變量值? – 2015-08-05 00:13:04
這應該是訣竅。
WITH
base AS
(
SELECT *
FROM MY_ITEMS
)
SELECT (SELECT COUNT(*) FROM base) kount,
base.*
FROM base
如果您想在數據庫級別執行此操作,我同意第二個建議。你可以在這裏看到一個例子:http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions032.htm#i82697 – Intelekshual 2010-05-21 17:39:20
+1,這是一個聰明的方法來做到這一點! :) – FrustratedWithFormsDesigner 2010-05-21 17:42:53
非常感謝!我知道這是2年前發佈的,但它確實幫助了我! – Slim 2013-04-03 11:08:12