哪个查询在SQL Server和Oracle中都有效?

Mic*_*ter 7 sql sql-server oracle

我正在搜索SELECT适用于SQL Server和Oracle 的查询.它选择什么或结果是什么并不重要,但它不依赖于数据库内容.

这听起来像是一件简单的事情,但我无法想出一个例子.

首先我想到了SELECT 0,但Oracle需要FROM dual哪个SQL Server不支持.然后我尝试了SELECT * FROM INFORMATION_SCHEMA.TABLES,但Oracle没有那些......

编辑:此问题出现在尝试检查某些SQL Server链接服务器是否可访问.但我认为它本身非常有趣.

Gor*_*off 8

在rextester上,以下适用于SQL ServerOracle:

select count(*)
from sys.all_objects;
Run Code Online (Sandbox Code Playgroud)

可能有一些其他sys表可用于此.

编辑:

我要回应Jeroen的评论.如果您也想要相同的结果,那么添加一个过滤掉所有行的子句:

select count(*) as always_zero
from sys.all_objects
where 1 = 0;
Run Code Online (Sandbox Code Playgroud)

  • 即使"结果是什么并不重要",添加"where 1 = 0"将使结果可预测(并且至少允许SQL Server优化器完全忽略对表的访问). (2认同)