在 TSQL 中经常使用以下查询:
SELECT COUNT(*), *
FROM CUSTOMER c
WHERE c.Name like 'foo%';
当我尝试在 Oracle SQL Developer 中执行此查询时,它不起作用并引发错误:
“缺少表达”
什么是好的语法?
提前致谢。
这将表现得更好:
SELECT COUNT(*) OVER (), c.*
FROM CUSTOMER c
WHERE c.Name like 'foo%';
一种方法是执行以下操作。这将导致每行的 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%'