一尘不染

如何在同一查询中选择所有列和一个count(*)

sql

在TSQL中经常使用以下查询:

SELECT COUNT(*), * 
FROM CUSTOMER c 
WHERE c.Name like 'foo%';

当我尝试在Oracle SQL Developer中执行此查询时,它不起作用并抛出错误:

“缺少表达”

什么是好的语法?

提前致谢。


阅读 124

收藏
2021-03-17

共1个答案

一尘不染

一种方法是执行以下操作。这将导致每行的count(*)结果。但是要当心,有一个笛卡尔联接。如果您有很多行,例如’foo%’,则该程序的效果会很差。

select a.cntr, c.*
from CUSTOMER c 
   , (select count(*) cntr
     from customer b
     where b.name like 'foo%' ) a
where c.name like 'foo%'
2021-03-17