经常在TSQL中使用以下查询:
SELECT COUNT(*), *
FROM CUSTOMER c
WHERE c.Name like 'foo%';
当我尝试在Oracle SQL Developer中执行此查询时,它不起作用并向我抛出错误:
“缺少表达”
什么是好的语法?
提前致谢。
答案 0 :(得分:50)
这样做会更好:
SELECT COUNT(*) OVER (), c.*
FROM CUSTOMER c
WHERE c.Name like 'foo%';
答案 1 :(得分:8)
一种方法是执行以下操作。这将导致每行的计数(*)结果。但要注意,有一个Cartesianjoin;如果你有很多像'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%'