我正在尝试将值从一列表中插入到另一列中并进行轻微转换。
以下查询引发了我的错误
Msg 512,Level 16,State 1,Line 1 子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。 声明已经终止。
update faults_analysis
set datekey = (select cast(convert(varchar(10),faultstarttime,112) as int) from FAULTS_ANALYSIS )
如何在不使用游标的情况下插入多个值
答案 0 :(得分:2)
我没有必要的声誉对此发表评论所以我不能100%正确地理解你。
如果我理解正确,您是否尝试使用该表中另一列的转换值更新同一表中的列?
下面应该是你需要的,但请注意,因为它没有假设你想要更新整个表的where子句。
update faults_analysis
set datekey = cast(convert(varchar(10),FA.faultstarttime,112) as int)
from FAULTS_ANALYSIS FA
答案 1 :(得分:0)
UPDATE faults_analysis
set datekey = cast(convert(varchar(10),faultstarttime,112) as int)
无需从FAULTS_ANALYSIS FA中添加 from “