gpt4 book ai didi

sql - Microsoft Query 中的子查询语法差异

转载 作者:行者123 更新时间:2023-12-04 20:46:56 26 4
gpt4 key购买 nike

上周我发布了一个关于在 Microsoft Query 中使用子查询的问题,虽然我在那个实例中的问题没有得到解决,但我发现这个问题比以前的情况要基本得多。

我通过 ODBC 连接到 Informix 数据库,尝试在 Microsoft Query(来自 Excel 2010)中执行简单查询,但在尝试正确获取子查询的语法时遇到了很多麻烦。我有一种感觉,MSQuery 被一些与 Informix/ODBC 源相关的特性所困扰。我之所以这么想是因为如果我尝试使用 Excel 电子表格作为我的数据源的非常简单的子查询,则以下语法有效:

SELECT * FROM
(
SELECT x0.field1, x0.field2
FROM `C:\USERS\NAME\DIRECTORY\Test.xlsx`.`Sheet1$` x0
)

但是,当我使用 Informix 数据库中的子查询尝试相同的非常简单的查询时,
SELECT * FROM
(
SELECT x0.id, x0.creation_date
FROM coastal.waybill x0
)

我收到错误 "Could not add the table '(select'."我所能推测的是,在 MSQuery 中使用的语法必须针对数据源进行定制。然而,当我抬头 Informix's syntax for subqueries in the FROM clause我更加困惑,因为我似乎遵循了他们的语法,因为他们的例子是:
SELECT LIMIT 1 * FROM 
(SELECT c.customer_num, c.lname, c.company,
c.phone, u.call_dtime, u.call_descr
FROM customer c, cust_calls u
WHERE c.customer_num = u.customer_num
ORDER BY u.call_dtime DESC);

我彻底迷路了。任何帮助将不胜感激!

最佳答案

您是否尝试过这样的表别名:

SELECT a.* FROM
(
SELECT x0.id, x0.creation_date
FROM coastal.waybill x0
) a

我曾经对 Oracle 数据库使用 MS Query 很多,而子查询不需要别名,然后我转移到确实需要它们的 MS SQL。

关于sql - Microsoft Query 中的子查询语法差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com