注意:T_UserInfo中的UserID为Int,而T_Mast中的UserIDS为Varchar

解决方案 »

  1.   

    UserIDs换为UserNames,即把ID改换为名字,
    该字段名还是内容。
      

  2.   

    试试看
    Declare @UserID           int,
            @UserName varchar(50),
    Declare MyCur SCROLL CURSOR 
        For Select UserID,UserName
              From T_UserInfo
        For Read Only
    Open MyCur
    Fetch First From MyCur Into @UserID,@UserName
    While(@@fetch_status=0)
    begin
      Update T_Mast
         Set UserIDs = @UserName
       Where UserIDs Like '%'+Convert(varchar(50),@UserID)+'%'
      Fetch Next From MyCur Into @UserID,@UserName
    end;
    Close MyCur
    DeAllocate MyCur 
      

  3.   

    先谢谢CoolSlob() 了。TO  qybao(阿宝) 当然不能修改T_Mast了我要得到的只是个结果集 !最好能用一个SQL语句搞定前面说错了:不能用存储过程,只能用视图或单个SQL
      

  4.   

    update T_Mast set UserIDS=
    (select UseName from T_UserInfo 
     where T_Mast.UserIDS=cast(T_UserInfo.UserID as char(20)) 
    )
      

  5.   


    原本是来报告“开发”进度的~~~没想到你“说错了”不过,我认为,你没有说错!
    不用存储过程是办不到的,你只有另请高明了~~~
    单个SQL 更不行~~~~我现在完成了70%~~~~~~~~~~~~~~~~~~~~`
      

  6.   

    update T_Mast set UserIDS=
    (select UseName from T_UserInfo 
     where T_Mast.UserIDS=cast(T_UserInfo.UserID as char(20)) 
    )
      

  7.   


     那就先假设可以使用存储过程吧
    但还是要有一个原则(底线):不能用临时表;不能修改表T_Mast
    OK? 
    WaitIng
      

  8.   


    我还要不要继续?疑点:
      把ID改换为名字,改换后的存储格式是否与先前相似,用逗号分隔!
    如:(张三,张二,张一),另外,Curpu字段是否唯一?它的类型是什么?!
    -----------------------------------------------------------------
    我今天是大发慈悲了~~ :-)
    从没有这样帮我家解决问题~~` :-)
    要是使用存储过程不行的话,请尽早与我发短消息!要是在下班之前没收到的话,
    呵呵,那就要到下星期了,明后两天休息~~
    另外,对于我提出的疑点,也希望在短消息中说明!
    -----------------------------------------------------------------
      

  9.   


     那就先假设可以使用存储过程吧
    但还是要有一个原则(底线):不能用临时表;不能修改表T_Mast
    OK? 
    WaitIng
      

  10.   

    真是碰上好人了!  其实我是从不同表中(这些表可能是动态创建的)生成一个查询语句的其他的表和字段我都用一个视图实现了,惟有着个还没有解决! 可以用存储过程,不能用临时表也不能修改表T_Mast
    其实不只有Curpu的,还可能有很多的其他的字段,我是为了简化问题的说明才这样写的。所以你处理的时候你干脆当做连 Curpu字段都没有好了!
    你说的对,取出的useName之间也是用,分隔
    注意,原UserIds可能有为空的时候!
    谢谢了,等好消息
      

  11.   

    注意,原UserIds可能有为空的时候---------有什么特别的?
    如果为空时,干脆不处理就是了吧?!另外,我也很想知道不用临时表怎样解决!!快拿高loudspeaker来,喊高手~~
      

  12.   

    要我说,你的UserIDs字段是不是有问题?!怎么那样实现?!郁闷~~~走人喽```````````````~~~做了一个来小时无用功~~下班后再来看看,呵呵 :-)
      

  13.   


      谢谢, CoolSlob()了,虽然你没有解决!很感谢你的热心!要特别表明UserID可能存在空,是怕你强行用什么连接之类的弄得把记录都丢失了!UserIDs这样设计,有我自己的道理,我也想过用一个表,每个ID用一条记录来表识,但考虑到我整个系统的设计,还是采用了UserIDs这样的设计!
      
     希望得到解决!
    我也郁闷啊!呵呵! 
      

  14.   

    如果你能够把T_Mast中的UserIDS改成唯一的编号,然后在T_mast中增加一个
    新的字段,标志Curpu的中编号的序号,就能够通过一条sql完成你要的功能。
    或者建立T_mast的另外一张从表也能达到同样的功能。
      

  15.   

    当userids为空的时候,就相当于从表中没有记录,进行关联的时候没有关系。
      

  16.   

    不用存储过程是办不到的,你只有另请高明了~~~
    单个SQL 更不行~~~~
      

  17.   

    当然用存储过程,你这个可以试试
       IN
    where UserIDS in (@userid)
    我现在没有Sql server,没法试验,我也不知道行不
      

  18.   


    ================================================================
    一颗红心向前看,为了革命两茫然,不好意思才囊尽,只能说上一点点。
    ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
    ★    我踢  我踢   我踢  我踢  我踢  我踢  我踢  我踢  我踢   ★
    ★    你UP  你UP   你UP  你UP  你UP  你UP  你UP  你UP  你UP   ★
    ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
    ================================================================
      

  19.   


     不是说了可用存储过程吗? 但不能用临时表或更改T_Mast本身的字段
    特别的,还需要考虑UserIDs为空的情况!
      

  20.   

    ‘多个UserID ’中多个最多有几个????很关键的
      

  21.   

    如果‘多个’能确定的话,可以考虑用case 来做了
      

  22.   


         哈哈,得来全不费工夫!
        自己写一个函数然后套入SQl语句就是了  
        竟然如此的简单   
      咳
    发分!
      
      

  23.   

    谢谢各位朋友的热心,特别是 CoolSlob() (