簡體   English   中英

SELECT @@ ROWCOUNT相當於Oracle

[英]SELECT @@ROWCOUNT Oracle equivalent

我有一個查詢管理應用程序。 以前,我使用的是SQL Server數據庫,並通過我以前執行的查詢來獲取受影響的行數:

SELECT * FROM TABLE (或任何其他選擇查詢)

然后我執行SELECT @@ROWCOUNT以獲取受最后執行的查詢影響的行數。

我已經閱讀了有關SQL%ROWCOUNT ,但無法使其在SELECT語句中工作

在Oracle數據庫中有什么方法可以做到這一點? 謝謝!

編輯:

我已經通過執行SELECT COUNT(*) FROM (QUERY)來獲取受查詢影響的行數來解決此問題,我建議這種方法,因為如果查詢包含ORDER BY子句,則該方法在SQL Server中不起作用。

我不知道您可以在純SQL中使用Oracle中的任何等效項。

根據您的特定需求,一種可能對您有用的替代方法是在您的select語句中count(*) over ()上添加一個count(*) over ()以提供總的行數。 這樣至少可以避免您不得不第二次重新執行查詢。

select t.*,
       count(*) over () as num_rows
  from table t
 where ...

或者,如果您不能更改原始查詢,則可以如下包裝:

select t.*,
       count(*) over () as num_rows
  from (query) t

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM