select bianma from tablea0009
2222
5555
7777
............................
我想把这结果集拼接成字符串,bianma=0009 or bianma=2222 or
求教sql应该如何写,数据比较多

解决方案 »

  1.   

    不太明白,直接用IN代替OR啊
    bianma IN(0009,2222,...)
      

  2.   

    要的结果是这 bianma=0009 or bianma=2222 or bianma=5555 ..........
    这样的一字符串
      

  3.   

    create table tablea
    (
      bianma varchar(10)
    )insert into tablea values
    ('0009'),
    ('2222'),
    ('5555'),
    ('7777')
    declare @str nvarchar(max) = ''select @str = @str + 'bianma =' + bianma +' or ' 
    from tablea
    set @str = LEFT(@str,LEN(@str) -3)
    print @str
      

  4.   

    这样一结果 bianma='0009' or bianma='2222' or bianma='5555' ..........
      

  5.   

    create table tablea
    (
      bianma varchar(10)
    )insert into tablea values
    ('0009'),
    ('2222'),
    ('5555'),
    ('7777')
    declare @str nvarchar(max) = ''
    select @str=(
    select  'bianma =' + bianma +' or '
    from tablea 
    for xml path(''))
    from (select 1 a)a
    set @str = LEFT(@str,LEN(@str) -3)
    print @str
      

  6.   

    DECLARE @SQL VARCHAR(8000)
    SET @SQL= ''SELECT @SQL=@SQL+' or bianma='''+bianma+'''' 
    FROM tablea
    SET @SQL=STUFF(@SQL,1,4,'')
    PRINT @SQL