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

如何在无写入权限的ACCESS中模拟SQL Server的VALUES功能?

Access中替代VALUES子句实现查询的方法

要在无写入权限的Access环境中,找出指定值列表里不存在于co_wtr表Quad字段中的值,可以用以下方法:

方法一:用UNION ALL构造虚拟行集

Access支持通过UNION ALL拼接多个单值查询来模拟SQL Server中VALUES子句的行集合效果,无需创建实体表,完全符合无写入权限的要求。

对应的SQL语句如下:

SELECT v.val
FROM (
    SELECT 'MONTROSE' AS val
    UNION ALL
    SELECT 'STERLING' AS val
    UNION ALL
    SELECT 'GREELEY' AS val
    UNION ALL
    SELECT 'FRED' AS val
    UNION ALL
    SELECT 'BILL' AS val
) AS v
LEFT JOIN co_wtr t ON t.Quad = v.val
WHERE t.Quad IS NULL;

原理说明

  • 每个SELECT 'xxx' AS val生成一行单值数据,通过UNION ALL将这些行合并成一个临时的虚拟数据集v。
  • 后续的LEFT JOIN和WHERE t.Quad IS NULL逻辑与原SQL Server查询完全一致,筛选出虚拟数据集中未在co_wtr.Quad中出现的值。

补充说明

如果需要检查的值数量较多,这种写法会稍显繁琐,但这是Access环境下无需写入权限的最直接解决方案。若允许使用VBA自定义函数,也可以通过字符串拆分生成行集,但需要确保数据库允许启用VBA功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:20:38