2010-05-21 29 views
11

Tôi cần biết có bao nhiêu hồ sơ được trả lại trong một lựa chọn trong oracle. Hiện tại, tôi thực hiện hai truy vấn:Số hàng trong Oracle SQL Chọn?

SELECT COUNT(ITEM_ID) FROM MY_ITEMS; 

SELECT * FROM MY_ITEMS; 

Tôi cần biết COUNT nhưng tôi ghét thực hiện hai truy vấn. Có cách nào để thực hiện:

SELECT * FROM MY_ITEMS 

và sau đó tìm xem có bao nhiêu bản ghi trong đó?

Trả lời

28

Có cách nào để làm:

SELECT * FROM MY_ITEMS 

và sau đó tìm hiểu có bao nhiêu hồ sơ đang chờ ở đó?

Nếu bạn muốn nó theo thứ tự chính xác này, bạn có thể tìm nạp tất cả hồ sơ trên máy khách và đếm số của họ (hầu như tất cả thư viện khách cung cấp chức năng cho điều đó).

Bạn cũng có thể làm:

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

, mà sẽ trả về cho bạn số lượng cùng với mỗi bản ghi.

+0

Nếu bạn muốn thực hiện việc này ở cấp cơ sở dữ liệu, tôi đồng ý với đề xuất thứ hai. Bạn có thể xem ví dụ tại đây: http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions032.htm#i82697 – Intelekshual

+0

+1, Đó là cách thông minh để thực hiện! :) – FrustratedWithFormsDesigner

+0

Cảm ơn HUGE !!! Tôi biết rằng nó đã được đăng cách đây 2 năm, nhưng nó thực sự đã giúp tôi! – Slim

0

Tôi không chắc chắn về bí danh bảng, tôi không nhớ trong Oracle nếu chúng yêu cầu 'AS' hay không. Nhưng điều này sẽ làm việc.

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

OP đã yêu cầu một phương thức không yêu cầu hai truy vấn; nghiền hai truy vấn thành một, mà vẫn làm chính xác cùng một lượng công việc không cần thiết thêm, không phải là một câu trả lời tuyệt vời, IMHO. –

3

Nếu bạn đang làm việc trong PL/SQL, bạn có thể sử dụng SQL% ROWCOUNT giả biến để nhận số hàng bị ảnh hưởng bởi câu lệnh SQL cuối cùng. Có thể giúp bạn tiết kiệm một số nỗ lực.

+1

cách đánh giá/nhận giá trị biến này? –

2

Điều này nên thực hiện thủ thuật.

WITH 
base AS 
(
    SELECT * 
    FROM MY_ITEMS 
) 
SELECT (SELECT COUNT(*) FROM base) kount, 
     base.* 
FROM base 
Các vấn đề liên quan