use tigerzz
update pos_vip_info
set vip_tel=mobile_no
where vip_tel is null
错误信息
服务器: 消息 512,级别 16,状态 1,过程 tru_pos_vip_info,行 18
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。
请教解决方法

解决方案 »

  1.   

    mobile_no 是字段吗?因为它不是一个固定的值,所以出错
    可以这样:
    update pos_vip_info
    set vip_tel=(select mobile_no from aa where)--让它唯一
    where vip_tel is null 
      

  2.   

    除非用 group by 否则操作都是针对的元组,select 出来的可以是个结果集,update只能是一次一个元组,而vip_tel is null  的元组可能很多。你可以写个函数(存储过程)来做。
      

  3.   

    use tigerzz 
    update pos_vip_info 
    set vip_tel=(SELECT TOP 1 mobile_no 
    where vip_tel is null )
      

  4.   

    服务器: 消息 512,级别 16,状态 1,过程 tru_pos_vip_info,行 18 
    子查询返回的值多于一个。当子查询跟随在 =、!=、 <、 <=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。 
    语句已终止-=============》说明mobile_no 的值不是唯一的。。
    你先select mobile_no from pos_vip_info where vip_tel is null 就能看到了
      

  5.   

    use tigerzz 
    update pos_vip_info 
    set vip_tel=(SELECT TOP 1 mobile_no FROM pos_vip_info 
    where vip_tel is null )上面少打了几个,晕