【问题标题】:Migrating SQL Query into MS Access [closed]将 SQL 查询迁移到 MS Access [关闭]
【发布时间】:2019-04-17 16:13:27
【问题描述】:

我在 SQL 中有一个很长的查询。我想将查询迁移到 MS Access。当我直接尝试在 MS Access SQL 视图中运行 SQL 查询时,它显示格式错误。有没有办法将 SQL Query 转换为 MS Access?

提前谢谢你。

【问题讨论】:

  • 转换的方法是坐下来重写Access。没有工具可以做到这一点,如果有的话,在 Stackoverflow 上要求它是题外话。也许如果您在这里共享 tsql 某种灵魂会为您工作到 Access sql。我也很好奇您为什么要在 Access 而不是 sql server 中执行此操作。对我来说,这感觉像是倒退了。
  • 定义“迁移”。您是否将包括表格在内的所有内容都移动到 Access 中?
  • 我 1000% 同意 @JNevill。这是错误的迁移方向。
  • @JNevill 实际上,我有一份 power bi 报告。因此,如果我每次运行它,它都会获取所有数据,比如说 100 万行,并且需要将近 2-3 个小时。所以,我正在考虑转储上个月的所有数据以进行访问。因此,运行 power bi 报告将很容易。
  • 那你在Access中不会有同样的问题吗?

标签: sql sql-server ms-access


【解决方案1】:

看看这个网址http://nhsexcel.com/converting-sql-to-access/

由于 Access SQL (JET SQL) 和 T-SQL(在 Microsoft SQL Server 上使用)的细微差别,我被最简单的选择查询绊倒了。

例如。

T-SQL 选择值包含的位置.....

SELECT * FROM dbo.episodes
WHERE spell_hrg like 'PB%'

在 T-SQL 中,多字符通配符是 %,而在 Access 中是 *。字符串也在访问中使用双语音标记“字符串”而不是单引号“字符串”来标识

Access SQL 选择值包含的位置.....

SELECT * FROM dbo.episodes
WHERE spell_hrg like “PB*”

字符串函数 匹配多个字符 T-SQL:

WHERE Value like ‘PB%’

访问 SQL:

WHERE Value like “PB*”

匹配单个字符 T-SQL:

WHERE Value like ‘PB0_Z’

访问 SQL:

WHERE Value like “PB0?Z”

修剪空白 T-SQL:

RTRIM(LTRIM(Value)

访问 SQL:

TRIM(Value)

NULLS 检查 NULL T-SQL:

WHERE Value IS NULL

访问 SQL:

WHERE Value IS NULL -- or -- WHERE ISNULL(Value) (note the difference from T-SQL's ISNULL)

转换 NULL 值 T-SQL:

COALESCE(Value, ValueToReturnIfNull) -- or -- ISNULL(Value, ValueToReturnIfNull)

访问 SQL:

NZ(Value, ValueToReturnIfNull)

条件表达式 T-SQL:

 WHEN Condition THEN ReturnIfTrue ELSE ReturnIfFalse END

访问 SQL:

IIF(Condition, ReturnIfTrue, ReturnIfValue)

【讨论】:

  • 非常感谢。
【解决方案2】:

如果您确实在 TSQL 中有一个包含多个连接的长查询,请为 Access SQL 括号问题做好准备。根据 Access SQL 语法,您的所有联接都需要用括号括起来。这个链接解释它:Convert TSQL to MS-Access SQL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 2020-03-13
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多