0

我正在尝试将值从表的一列插入到另一列中,并进行轻微的转换。

以下查询将我抛出一个错误

消息 512,级别 16,状态 1,第 1 行子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。该语句已终止。

update faults_analysis
    set datekey = (select cast(convert(varchar(10),faultstarttime,112) as int) from FAULTS_ANALYSIS )

如何在不使用游标的情况下插入多个值

4

2 回答 2

2

我没有必要的声誉对此发表评论,所以我不能 100% 正确理解你。

如果我理解正确,您是在尝试使用该表中另一列的转换值更新同一表中的列?

下面应该是您需要的,但是请小心,因为没有 where 子句假定您要更新整个表。

    update faults_analysis
       set datekey =  cast(convert(varchar(10),FA.faultstarttime,112) as int)
    from FAULTS_ANALYSIS FA
于 2013-09-25T11:02:37.720 回答
0
UPDATE faults_analysis
       set datekey =  cast(convert(varchar(10),faultstarttime,112) as int)

无需添加from 子句“来自 FAULTS_ANALYSIS FA”

于 2013-09-25T12:59:43.107 回答