我有一个包含电子邮件地址的表格。我正在尝试使用电子邮件地址中的域填充DomainName
列。 select语句本身可以正常工作。但是当我将它添加到更新查询时,我得到以下内容:
子查询返回的值超过1。当子查询跟随
=
,!=
,<
,<=
,>
,>=
或子查询被用作子查询时,不允许这样做表达。
我应该使用什么代替=
?
update Table1 set Table1.DomainName=
(select SUBSTRING(Table1.Email,(CHARINDEX('@',Table1.Email)+1),LEN(Table1.Email) -
(CHARINDEX('@',Table1.Email))) as DomainName FROM Table1)
答案 0 :(得分:3)
只需删除子选择。
update Table1
set Table1.DomainName= SUBSTRING(Table1.Email,(CHARINDEX('@',Table1.Email)+1),LEN(Table1.Email) - (CHARINDEX('@',Table1.Email)))
FROM Table1
答案 1 :(得分:2)
删除SELECT
语句,应该是这样的:
update Table1
set Table1.DomainName= SUBSTRING(Table1.Email,
(CHARINDEX('@', Table1.Email) + 1),
LEN(Table1.Email) - (CHARINDEX('@',Table1.Email))
答案 2 :(得分:1)
只需删除子查询,这将起作用:
update Table1
set Table1.DomainName = SUBSTRING(Table1.Email,
(CHARINDEX('@',Table1.Email)+1),
LEN(Table1.Email) - (CHARINDEX('@',Table1.Email)))