我有一个应用程序,它使用几个不同的数据库来收集类似的信息。我通过ODBC接口实现这一点,它有效地从我的应用程序层抽象出我的持久层,并且它运行得相当好。
事情就是这样:我想要比
更具体的查询SELECT * FROM [TableName]
据我所知,这适用于所有ODBC数据库,但是当您开始更具体时,语法和语言使用会变得更加困难。在MySQL中运行的查询不一定适用于MSSQL;对Oracle运行良好的查询对PostgreSQL的影响不大。
但ODBC是一个抽象层,所以我认为必须有一个所有符合ODBC的数据库系统都支持的语言参考。如果我使用这些语言结构编写查询,无论数据库系统如何,我都应该得到类似的结果。
我是对的吗?有这样的标准吗?如果是这样,我在哪里可以找到语言参考,以便我可以相应地编写我的查询?我特别感兴趣的是像
这样的结构等。谢谢你的帮助!
答案 0 :(得分:1)
对于函数,ODBC标准列在Appendix E: Scalar Functions。那包括子串。您需要使用语法{fn func_name(arguments)}。 SQL 92中的强制转换函数在ODBC中转换(例如,SQL92中的CAST(值AS类型)是ODBC中的{fn CONVERT(value,type)}。但是,Top不是函数,而是数据库可能支持或不支持的SQL语法的一部分(例如,Oracle没有顶级)。