Access 2013:为啥会出现此语法错误?

Posted

技术标签:

【中文标题】Access 2013:为啥会出现此语法错误?【英文标题】:Access 2013: Why am I getting this Syntax Error?Access 2013:为什么会出现此语法错误? 【发布时间】:2014-03-07 07:30:53 【问题描述】:

在添加案例语句之前,我没有收到错误消息。如果 H1 或 H2 手机字段为空白或空,我需要添加案例语句以提供家庭电话号码作为备份(作为新手,我知道如何做到这一点的最佳方式)。出于某种原因,我在查询表达式中收到语法错误(缺少运算符)。它记录了两个 case 语句的错误。据我所知,它们写得正确……有人知道发生了什么吗?谢谢。

SELECT [H1 Last Name] & ", " & [H1 First Name] as [Full Name],[H1 E-Mail]
CASE
     WHEN [H1 Cell Phone] IS NULL
     THEN [Home Phone]
     ELSE [H1 Cell Phone] END as [Phone]

FROM NameLookup 
WHERE (((NameLookup.[H1 Last Name]) NOT LIKE '%SPEC%') OR ((NameLookup.[H1 Last Name]) NOT LIKE '%MODEL%')) AND ((NameLookup.[H1 Last Name]) IS NOT NULL)

UNION

SELECT [H2 Last Name] & ", " & [H2 First Name] as [Full Name],[H2 E-Mail]
CASE
     WHEN [H2 Cell Phone] IS NULL
     THEN [Home Phone]
     ELSE [H2 Cell Phone] END as [Phone]

FROM NameLookup 
WHERE (((NameLookup.[H1 Last Name]) NOT LIKE '%SPEC%') OR ((NameLookup.[H1 Last Name]) NOT LIKE '%MODEL%')) AND ((NameLookup.[H1 Last Name]) IS NOT NULL)


Order By 1;

【问题讨论】:

[h1 email] 后面漏了一个逗号 我认为一个可能的错误是使用 ORDER BY 【参考方案1】:

您是否在 MS Access ACE 中使用它?案例不可用,请使用IIF(argument, true value, false value)

SELECT [H1 Last Name] & ", " & [H1 First Name] as [Full Name],[H1 E-Mail],
IIF ( [H1 Cell Phone] IS NULL, [Home Phone], [H1 Cell Phone] ) AS Phone
FROM NameLookup 

访问 SQL 函数:http://www.techonthenet.com/access/functions/

【讨论】:

这有点为我工作,我相信你是对的,无论如何,CASE 对我不起作用。是的,我在 Access 中使用它(我对 SQL Server 更熟悉,虽然只够危险)。谢谢你。我仍然遇到的问题是,当联合发生时,所有未使用的家庭电话号码,因为手机不为空,都显示为空白全名(全名列中只有一堆逗号,没有电子邮件,然后是所有未使用的家庭电话号码)。 我不知道你为什么有一个 union,这两个语句有什么区别? 我正在尝试将四列中的基本信息合并为一列以进行查询:H1 = HomeOwner 1 和 H2 = Homeowner 2,他们都住在同一个房子里,但我想收集所有名字并在一栏中列出用于不同目的。所以我需要结合“H1 Last,H1 First”和“H2 Last,H1 First”并显示他们的联系信息(H1和H2都有自己的电子邮件和手机)。如果手机是空白的,我希望它默认为家庭电话号码。这有意义吗?谢谢你.. 当前output:的图片。我用红色圈出了列表开始正确显示合并的名称和数字的位置。 你有这些行的姓氏和名字吗?因为看起来你没有。

以上是关于Access 2013:为啥会出现此语法错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我会出现此错误:“数组”第 2 行或附近的语法错误:值数组?

此查询在 Access 2010 中完美运行,但是当我尝试在代码中执行它时,在 INSERT INTO 语句中出现语法错误

为啥“WITH”子句在 Informix 上会出现语法错误?

为啥cad安装会出现命令行语法错误

我不明白为啥会出现语法错误

为啥会出现“INSERT INTO 语句中的语法错误”?