+ -
当前位置:首页 → 问答吧 → 为什么会出现"当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。"

为什么会出现"当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。"

时间:2011-12-27

来源:互联网

update test1..CheckBillList set MatID=(select * from test2..CheckBillList where CheckID='1138CK1112-0006')

作者: jingyu165   发布时间: 2011-12-27

update test1..CheckBillList set MatID=(select * from test2..CheckBillList where CheckID='1138CK1112-0006')

你后面查询结果假如有两列,这赋值显示不正确,所以就报错了

作者: SQL77   发布时间: 2011-12-27

SQL code
--try

update 
  a
set
  matid=b.matid
from
  test1..CheckBillList  a,test2..CheckBillList  b
where
   a.连接字段=b.连接字段
and
  b.CheckID='1138CK1112-0006'

作者: fredrickhu   发布时间: 2011-12-27

SQL code
update test1..CheckBillList set MatID=(select max(MatID) from test2..CheckBillList where CheckID='1138CK1112-0006')

作者: guguda2008   发布时间: 2011-12-27

引用 1 楼 sql77 的回复:
update test1..CheckBillList set MatID=(select * from test2..CheckBillList where CheckID='1138CK1112-0006')

你后面查询结果假如有两列,这赋值显示不正确,所以就报错了

如果本来就有很多例,那我要怎么更新呢?

作者: jingyu165   发布时间: 2011-12-27

引用 4 楼 jingyu165 的回复:
引用 1 楼 sql77 的回复:
update test1..CheckBillList set MatID=(select * from test2..CheckBillList where CheckID='1138CK1112-0006')

你后面查询结果假如有两列,这赋值显示不正确,所以就报错了

如果本来就有很多例,那我要怎么更新呢?

我想要将test1..CheckBillList表里的matID这一个字段里的所有数据都跟test2..CheckBillList表里的matID的数据一样,要怎么搞呢?

作者: jingyu165   发布时间: 2011-12-27

用2楼的语句就行了

作者: kuqideyupian   发布时间: 2011-12-27

引用 2 楼 fredrickhu 的回复:
SQL code
--try

update
a
set
matid=b.matid
from
test1..CheckBillList a,test2..CheckBillList b
where
a.连接字段=b.连接字段
and
b.CheckID='1138CK1112-0006'

弱弱的问一句,a和b是什么意思?

作者: jingyu165   发布时间: 2011-12-27

别名。

作者: fredrickhu   发布时间: 2011-12-27