SQL中:
DECLARE @a varchar(90),@b varchar(90),@c varchar(90)
set @a='001'
set @b='002'
set @c=@a+','+@b
SELECT * FROM table WHERE code IN (@c)个人理解:
  @c在IN中为(''001','002'')
  IN(@a,@b)是可以的。但@a,@b应该是循环里面变量的一部分。我需要累计所有的code。只要能过就行。方法不限

解决方案 »

  1.   

    不是很明白搂主的意思,楼主希望得到什么?
    我觉得 @c在IN中为('001','002') 而不是 (''001','002'')
      

  2.   


    declare @i int
    declare @str varchar(1000)
    set @str = ''
    set @i = 0
    while(@i<100)
    begin
    set @str = @str + '''' + '00' + convert(varchar(3),@i) + '''' + ','
    set @i = @i + 1
    end
    set @str = left(ltrim(rtrim(@str)),len(ltrim(rtrim(@str)))-1)declare @sql varchar(2000)
    set @sql = 'select * from mytable where id in (' + @str + ')'
    print @sql
      

  3.   

    表star:
    code            name
    001             刘德华
    002             黎明
    003             张学友DECLARE @a varchar(90),@b varchar(90),@c varchar(90)
    set @a='001'
    set @b='002'
    set @c=@a+','+@b
    SELECT * FROM star WHERE code IN (@c)大家可以实验一下,IN(@a,@b)就可以
    用@c的时候就查不到001和002的值。我想知道怎么处理才能查出值。谢谢 Johnson_ch(狂热者) 我试了一下,还是不行
      

  4.   

    ◎c的这种 'XXX','XXX' 形式我知道怎么做。只是在  查询  的时候,不好使。我想了很久,乱哪。有些说的不清楚,不好意思。
      

  5.   

    给一个说是放在临时表里的答案这么多分,又没有搞错,sql的编成根本不是这样的楼主,好好再埋头努力吧。