[加急]SQL语法转Access-怎么转啊?

Cwst 2007-04-11 11:00:04
客户表中的Region如果不是Null则更新

UPDATE Orders SET Orders.ShipRegion = IsNull(SELECT Customers.Region FROM Customers WHERE Customers.CustomerID = Orders.CustomerID,Orders.ShipRegion)
WHERE Orders.ShipRegion IS NULL
...全文
224 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuan731 2007-04-11
  • 打赏
  • 举报
回复
UPDATE Orders SET Orders.ShipRegion =
iif(IsNull(
dlookup('Region','Customers','CustomerID = ' & Orders.CustomerID)),
ShipRegion,dlookup('Region','Customers','CustomerID = ' & Orders.CustomerID))
WHERE Orders.ShipRegion IS NULL
OracleRoob 2007-04-11
  • 打赏
  • 举报
回复
Access的update语句不支持子查询,需要用域函数。
wwwwb 2007-04-11
  • 打赏
  • 举报
回复
or
UPDATE Orders inner join Customers on Customers.CustomerID = Orders.CustomerID
SET Orders.ShipRegion = iif(isnull(Customers.Region),Orders.ShipRegion,Customers.Region)WHERE Orders.ShipRegion IS NULL

wwwwb 2007-04-11
  • 打赏
  • 举报
回复
or
UPDATE Orders inner join Customers on Customers.CustomerID = Orders.CustomerID
SET Orders.ShipRegion = iif(isnull(Customers.Region),Orders.ShipRegion,Customers.Region)
wwwwb 2007-04-11
  • 打赏
  • 举报
回复
上述假如'CustomerID 为数字型,如为字符型
UPDATE Orders SET Orders.ShipRegion =
iif(IsNull(
dlookup('Region','Customers','CustomerID = ' & Orders.CustomerID)),
ShipRegion,dlookup('Region','Customers','CustomerID = "' & Orders.CustomerID
& '"'))
WHERE Orders.ShipRegion IS NULL
DLOOKUP为VBA函数,只能在ACCESS中使用。
wwwwb 2007-04-11
  • 打赏
  • 举报
回复
UPDATE Orders SET Orders.ShipRegion =
iif(IsNull(
dlookup('Region','Customers','CustomerID = ' & Orders.CustomerID)),
ShipRegion,dlookup('Region','Customers','CustomerID = ' & Orders.CustomerID))
WHERE Orders.ShipRegion IS NULL
OracleRoob 2007-04-11
  • 打赏
  • 举报
回复
如果在纯Access中使用,还可以用域函数处理,如一楼方法。
OracleRoob 2007-04-11
  • 打赏
  • 举报
回复
Access使用的是Jet-SQL,SQL Server使用的是T-SQL,两者用法上相差很大。


JET SQL 帮助(jet4 access2000)下载地址

http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=


OracleRoob 2007-04-11
  • 打赏
  • 举报
回复
--Access中的isnull(字段名)仅仅用来判断是否为空,与SQL Server的isnull(字段名,新值)不同。

--需要变通使用iif(isnulL(字段名),新值,字段名) 这种方式处理:


UPDATE Orders AS A
inner join Customers AS B on A.CustomerID = B.CustomerID
SET
A.ShipRegion = iif(isnull(B.Region),A.ShipRegion,B.Region)

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧