【发布时间】:2015-07-13 09:06:50
【问题描述】:
我们有一个使用用户编写的 SQL 语句索引数据的应用程序。我们将这些语句放在括号内,以便我们可以将该查询限制为特定条件。例如:
select * from (select F_Name from table_1)q where ID > 25
虽然我们发现这种格式在使用 Sybase 数据库时不起作用。报告括号周围的语法错误。我试过在一个测试实例上玩,但还没有找到实现这个结果的方法。我没有直接参与开发,我的 SQL 知识有限。我假设“q”是给子结果一个别名供应用程序使用。
Sybase 有特定的语法吗?如果是这样,该查询如何适应它?
提前致谢。
【问题讨论】:
-
你使用什么样的SYBASE数据库? ASE,智商,任何地方? SYBASE是公司不是db系统。您的查询适用于 ASE。
-
在大多数情况下,您可以只使用标准的
JOINs 而不是FROM子查询。 -
在其他情况下,您经常使用临时表 (
#tablename) 来保存子查询的结果,以供下次查询使用。 -
除了其他人报告的区分大小写的问题外,查询
select * from (select F_Name from table_1)q where ID > 25不应该在任何DBMS 中工作。派生表q只有一列 (F_Name),并且没有名为ID的列。所以,它应该在我能想到的所有 DBMS 中抛出关于q和ID的错误。 -
我会提供更多信息,我不知道有各种版本。
标签: sql database syntax subquery sybase