SQL错误:当子查询没有用EXISTS引入时,选择列表中只能指定一个表达式

问题描述 投票:0回答:1

尝试从另一个表更新表的列,但需要使用 SUBSTRING 修改值。语句单独工作正常,但组合时出错。

工作中

SET RoomName = DeviceName

SELECT DeviceName, SUBSTRING(DeviceName,5,LEN(DeviceName)-5)  
FROM Location.Device

不工作

SET RoomName = (SELECT DeviceName, SUBSTRING(DeviceName, 5, LEN(DeviceName) - 5) 
                FROM Location.Device)
sql sql-update substring
1个回答
0
投票

未使用 EXISTS 引入子查询时,选择列表中只能指定 一个表达式

This is one ... and this is the 2nd expression | | v v ---------- --------------------------------------------- SET RoomName = (SELECT DeviceName, SUBSTRING(DeviceName, 5, LEN(DeviceName) - 5) FROM Location.Device)
如果您将 

RoomName

 设置为某个值(显然是 
DeviceName
),则从 
select
 中删除第二个表达式。

除此之外,还要注意子查询返回的行数;它应该只返回一行,因为 - 如果它返回两行或更多行 - 数据库如何知道

值应该放入 RoomName

© www.soinside.com 2019 - 2024. All rights reserved.