gpt4 book ai didi

sql - 将 TSQL 转换为 MS-Access SQL

转载 作者:行者123 更新时间:2023-12-04 12:44:21 28 4
gpt4 key购买 nike

TSQL(在 MS SQL Server 2000 和 2005 中使用)允许多个 JOIN 子句,一个接一个,不需要逗号或括号。在 Access 中试试这个,它会引起不适:
“查询表达式中的语法错误(缺少运算符)...”

从我在谷歌领域收集到的信息来看,Access SQL 需要括号来对 JOIN 子句进行分组。关于如何实现这一点的大多数建议是使用设计 View 或查询向导,并让 Access 找出括号的位置(标准 SQL 中不需要)。问题是,我太习惯在文本编辑器(记事本、SSMS、VS2005 等)中执行 SQL,以至于设计 View 和向导妨碍了我的工作并使我的皮肤爬行。有时,如果有多种可能性,向导会对加入什么做出错误的假设,而我已经习惯于在 TSQL 中自己做这件事,我宁愿让向导不参与其中。

是不是有一个工具可以将 TSQL 转换为 Access SQL,或者至少有一组关于在哪里放置括号的规则?

例子:

SELECT ...
FROM Participant PAR
INNER JOIN Individual IND
ON PAR.APETSID = IND.APETSID
INNER JOIN Ethnicity ETH
ON IND.EthnicityID = ETH.ID
INNER JOIN Education EDU
ON IND.EducationID = EDU.ID
INNER JOIN Marital MAR
ON IND.Marital = MAR.ID
INNER JOIN Participant-Probation PXP
ON PAR.ID = PXP.ParticipantID
INNER JOIN Probation PBN
ON PXP.ProbationID = PBN.ID
INNER JOIN Class-Participant CXP
ON PAR.ID = CXP.ParticipantID
INNER JOIN Class CLS
ON CXP.ClassID = CLS.ID
INNER JOIN Official OFR
ON PAR.ReferringPO = OFR.ID
INNER JOIN Participant-Official PXO
ON PAR.ID = PXO.ParticipantID
INNER JOIN Official OFA
ON PXO.OfficialID = OFA.ID

最佳答案

是的,MS-Access 是愚蠢的。

我认为不存在(从 MS-SQL/TSQL 到 MS-Access 可能也不是一个巨大的市场)。通常,我使用的设计 View 就我而言并不是真正的向导。然后我手动添加表,然后(如果我没有创建适当的关系船图,或者有些东西有点时髦)在设计器中手动创建关系。之后,我检查 SQL View 中的查询并根据需要进行更正。

在您的示例的情况下(如您所示),您可能需要括号,并且必须手动添加它们。你可能想要这样的东西:

SELECT ...
FROM (((Participant PAR
INNER JOIN Individual IND
ON PAR.APETSID = IND.APETSID)
INNER JOIN Ethnicity ETH
ON IND.EthnicityID = ETH.ID)
INNER JOIN Education EDU
ON IND.EducationID = EDU.ID)
INNER JOIN Marital MAR
ON IND.Marital = MAR.ID

(如果您有 N 个内连接,则在开始时需要 N-1 个开括号,并且在连接结束时需要一个;不包括最后一个)

关于sql - 将 TSQL 转换为 MS-Access SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/794656/

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