我们主要使用SQL Server进行查询,但似乎当我们使用Java时,它会在Oracle引擎中运行。在this question中,我要求SQL Server方法计算来自多个表的记录,因为大多数时候SQL Server运行与Oracle相同。我能够从此查询中获取数据:
declare @count table (count1 int, count2 int, count3 int)
INSERT INTO @count
select (SELECT COUNT(*) FROM Bike),
(SELECT COUNT(*) FROM Car),
(SELECT COUNT(*) FROM Truck)
select * from @count;
然而,当把它放在Java中时,我得到一个错误,没有返回任何记录。知道我能在这做什么来解决这个问题吗?
答案 0 :(得分:1)
在Oracle中,您需要使用dual
表:
select (SELECT COUNT(*) FROM Bike),
(SELECT COUNT(*) FROM Car),
(SELECT COUNT(*) FROM Truck)
from dual;
如果您需要在一行中返回这些值,则以下任一数据库都可以使用以下内容:
select b.bcnt, c.ccnt, t.tcnt
from (SELECT COUNT(*) as bcnt FROM Bike) b cross join
(SELECT COUNT(*) as ccnt FROM Car) c cross join
(SELECT COUNT(*) as tcnt FROM Truck) t;