获取oracle中的记录数

时间:2012-04-11 09:36:07

标签: sql oracle

尝试使用Count(*)和我的查询条件来获取表中的记录数 样品表是
表:STUD_NAME

Id Name  
1  Steven  
2  smith  
2  Ben  
1  Willy

我的查询是

 select std.name 
 from STUD_Name where id='2'

为此,它将输出显示为“Smith”和“Ben”,同时我需要STUD_NAME表中的记录总数。

右边它应该显示总记录为“4”,请帮我解决这个问题以及如何在这种情况下形成查询

3 个答案:

答案 0 :(得分:3)

SELECT name, 
       cnt as total_count
FROM (
    SELECT id
           name,
           count(*) over () as cnt
    FROM stud_name
) t
WHERE id = 2

假设id是一个数字列,则不需要值2左右的单引号(并且由于后台发生的隐式数据类型转换而实际上是有害的)

答案 1 :(得分:1)

怎么样:

select 
       std.name 
      ,(select count(1) from STUD_Name) nrofstds  
from   STUD_Name std where std.id='2'

答案 2 :(得分:0)

select STUD_NAME.name, CNT.count
from STUD_NAME
   , (select count(*) COUNT from STUD_NAME) CNT
where id='2'