select empName from hr_users_v where userID in (select replace(receiver,'|',',') from mail_main) 
报错
消息 245,级别 16,状态 1,第 1 行
在将 nvarchar 值 '93,94,95,97,98,99' 转换成数据类型 int 时失败。
以前碰到这种问题 我都是把 '93,94,95,97,98,99'  当做参数 传进去
然后让查询语句构成一个  varchar 再exec
但我现在 想一下子更新整张表 请问怎么写

解决方案 »

  1.   

    DECLARE @s VARCHAR(8000)
    SET @s='select empName from hr_users_v where userID in ('+(select replace(receiver,'|',',') from mail_main)+')'
    EXEC(@s) 
      

  2.   

    这个要写成动态的declare  @s varchar(1111)
    SET @s='select empName from hr_users_v where userID in
     ('+(select replace(receiver,'|',',') from mail_main)+')'
    EXEC(@s) 
      

  3.   

    不好意思各位 我刚思路错了 我是这个需求
    我表a 中个有个字段 ul 它的值是100,101,103 这种形式 是userid的集合我现在新增一个字段 员工姓名 uName  怎么使uname=‘张三,李四,王五’userID 和empName 对应关系在 hr_users表中