尝试从另一个表更新表的列,但需要使用 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)
未使用 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
?