首页 > 解决方案 > 跨平台检查 SQL 中是否存在“DUAL”表的方法

问题描述

我有一个可能使用 Oracle、MySQL 或 SQL Server 的应用程序。在一些查询中,我需要使用“DUAL”表,例如:

SELECT (CASE WHEN EXISTS (SELECT 1 FROM MYTABLE) THEN 1 ELSE 0 END) FROM DUAL

但是,SQL Server 不支持“DUAL”表。

是否有我可以使用的 SQL 语句来检查是否支持“DUAL”表?这样,如果不支持,我可以分支到不同的查询。

我尝试查询 INFORMATION_SCHEMA.TABLES,但那里没有列出“DUAL”表,即使在支持它的 Oracle 和 MySQL 中也是如此。

标签: mysqlsqlsql-serveroracledatabase-table

解决方案


最好的办法是dual在 SQL Server 中创建一个包含一行的表或视图。MySQL 接受dual.

这样做一次,然后忘记它。


推荐阅读