sql - MS ACCESS 子查询不起作用 - “此子查询最多可以返回一条记录”(从 T-SQL 转换)
问题描述
我正在尝试将一些 SQL 代码移动到 Access(这样同事可以在我度假时运行!)
我在原始 SQL (MSSQL) 中拥有的是一个非常基本的子查询:
Select Customer_code,
(SELECT TRIM(EMail) where Email != 'Not Set') AS EMAIL_1
From customers
(不是完整的代码!)
但是,Access 不喜欢这样,并且似乎需要在子查询中使用“FROM”子句。
所以如果我使用(SELECT TRIM(EMail) FROM Customer where Email <> 'Not Set') AS EMAIL_1
然后我收到“此子查询最多可以返回一条记录”错误消息。
子查询在 SSMS 中工作正常,但我不知道如何修改它以进行访问。
任何帮助表示赞赏(我试图查看其他问题,但似乎没有一个与我正在尝试做的事情有关)。这里还有另一个子查询,但我已经单独测试过,它们都以同样的方式出错。
提前致谢
解决方案
这个没有from
子句的子查询几乎没有意义,即使在 SQL Server 中也是如此:它所做的只是检查email
当前行的值,因此它相当于一个case
表达式。在 MS Access 中,您可以使用iif()
:
select customer_code, iif(email <> 'Not Set', trim(email), null) as email_1
from customers
推荐阅读
- asp.net - 如何通过 ASP.NET Core 中的 api 控制器更新 IdentityUser 的自定义属性?
- c++ - 一个或两个语句中的 while 循环有什么区别?
- php - 如何在laravel中获取特定日期结果?
- c# - 在游戏中只添加一次分数
- unity3d - unity 2d 与相机边缘的碰撞
- json - 将值与过滤器的所有产品配对
- javascript - 将数据从 mysql 传递到 javascript
- git - 直接在 GitHub 上重命名 PDF 的问题
- reactjs - 尽管控制台没有显示错误,但 useHistory 钩子不起作用
- java - 如何使用 SHA-512 在 C# 中使用 SecureRandom 等效类从随机字节创建哈希值