You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Access多表查询添加列报错:Case语句语法问题求助

MS Access SQL语法错误排查与修正

原SQL存在的问题:

  1. Access表创建语法错误:Access不支持标准SQL的CREATE TABLE ... AS语法,创建新表必须用SELECT INTO语句。
  2. CASE表达式写法错误:
    • 错误指定了CASE的判断对象[New1_All_Items](这是表名,不是列名),应该针对你合并后的编号列(比如BP_ID,需替换为实际列名)写条件。
    • Access的CASE语法采用CASE WHEN ... THEN ... END格式,不需要在CASE后指定列(搜索式CASE)。
  3. 表名未正确包裹:New1 All Items包含空格,必须用方括号[New1 All Items]包裹才能被Access识别。
  4. 编号格式问题:如果编号是文本类型(保留前导零),范围判断时需要给数值加引号;如果是数字类型,前导零会被自动忽略,直接写数字即可。

修正后的SQL

若编号为数字类型:

SELECT *,
    CASE
        WHEN BP_ID BETWEEN 100000 AND 1344030 THEN 'Supplier'
        WHEN BP_ID BETWEEN 1000000307 AND 1006860889 THEN 'Customer'
        ELSE 'No Link'
    END AS BP_Type
INTO [Updated Items]
FROM [New1 All Items]

若编号为文本类型(保留前导零):

SELECT *,
    CASE
        WHEN BP_ID BETWEEN '0000100000' AND '0001344030' THEN 'Supplier'
        WHEN BP_ID BETWEEN '1000000307' AND '1006860889' THEN 'Customer'
        ELSE 'No Link'
    END AS BP_Type
INTO [Updated Items]
FROM [New1 All Items]

注意事项:

  • 把BP_ID替换为你实际合并后的客户/供应商编号列名。
  • 确认编号列的数据类型,选择对应版本的SQL执行。
  • 确保New1 All Items查询已存在且能正常访问。

内容的提问来源于stack exchange,提问作者snowshow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:07:25