【发布时间】:2018-10-06 05:54:09
【问题描述】:
我需要用 SELECT 语句生成的数据填充一个新列“Better_test”:
SELECT [User Organization], RIGHT([User Organization], LEN([User Organization]) - CHARINDEX(',', [USER ORGANIZATION])) AS Better_test
FROM Logins
下面的代码给了我这个错误: 当子查询不使用 EXISTS 引入时,选择列表中只能指定一个表达式。
UPDATE Logins
SET Better_test = ( SELECT [User Organization], RIGHT([User Organization], LEN([User Organization]) - CHARINDEX(',', [USER ORGANIZATION]))
FROM Logins
【问题讨论】:
-
这里不要使用子查询。该子查询返回超过 1 行。并且超过 1 列。到底是什么????
-
为什么要在这里更新?每次添加或更改行时,您都必须再次运行该更新。这可能是一个简单的计算列(在表中、在视图中、在查询中等)。数据是多余的。
标签: sql sql-server select sql-update