访问接受的 SQL,但 SQL Server Express 拒绝

Posted

技术标签:

【中文标题】访问接受的 SQL,但 SQL Server Express 拒绝【英文标题】:SQL that access accepts, but SQL Server Express rejects 【发布时间】:2013-08-28 12:25:22 【问题描述】:

今天我写了这段sql:

SELECT COUNT(T0021_werk_naam)
FROM (SELECT Distinct T0021_werk_naam,T0021_jaar,T0021_kwartiel
    FROM T0021_offertes
    WHERE T0021_status_code = 'G' AND T0021_jaar = 2013 AND (T0021_kwartiel = 3))

当我在本地访问时,这个 sql 运行得很好,但是,当我通过已经使用了很长时间的代码运行它时,并且最肯定地肯定不是问题,并将它发送到 SQL Express 它给出了一个错误提示')'附近有问题 在去掉所有可能的括号后,很明显它检测到最后一个 ')' 存在问题,但我没有看到问题。

有什么想法吗?

【问题讨论】:

我所知道的是,在 mysql 中,所有派生表都需要别名。因此,您可以在查询末尾添加任何字符作为子查询(派生表)的别名。虽然如果是这样的话,那么 SQL Express 确实会给出糟糕的错误消息:) 【参考方案1】:

您需要为括号中的选择提供别名:

SELECT COUNT(T0021_werk_naam)
FROM   (
           SELECT Distinct T0021_werk_naam,
                  T0021_jaar,
                  T0021_kwartiel
           FROM   T0021_offertes
           WHERE  T0021_status_code = 'G' 
                  AND T0021_jaar = 2013 
                  AND (T0021_kwartiel = 3)
       ) T

注意最后一个括号后面的 T。

【讨论】:

现在我觉得很傻 XD 非常感谢! SQL 有时让我很困惑,尤其是语法上的细微差别! 顺便说一句,我以为你通过 AS T 给了别名,但 T 就足够了吗? 是的,是一样的。 好吧,好吧,太好了! :D 我会在 5 分钟内排除你的答案,该网站告诉我等待 :\

以上是关于访问接受的 SQL,但 SQL Server Express 拒绝的主要内容,如果未能解决你的问题,请参考以下文章

在存储过程中接受永远无法工作的 SQL Server 查询

SQL Server 防病毒软件配置

SQL Server 防病毒软件配置

SQL Server 防病毒软件配置

SQL Server 到 MySQL

使用 ssis 包导入 excel 到 sql server 失败