将下表转化成视图
视图如下:
在将视图for xml auto,elements,结果出现奇怪的字段如:
<_x0020_occur_year_j1_x0020__x0020__x0020__x0020_>12.0000</_x0020_occur_year_j1_x0020__x0020__x0020__x0020_>该怎么把那些奇怪东西去掉,我需要的结果是<occur_year_j1></occur_year_j1>

解决方案 »

  1.   

    看不到图,你把各字段用你想要的别名,XML就用这个别名作为字段名。
      

  2.   


    declare @t varchar(8000)
    set @t=
    '<_x0020_occur_year_j1_x0020__x0020__x0020__x0020_>12.0000</_x0020_occur_year_j1_x0020__x0020__x0020>'
    select replace(@t,'_x0020','')
    /*
    <_occur_year_j1____>12.0000</_occur_year_j1__>
    */x0020是个列名?
      

  3.   

    图片不显示,我用文字说明一下:
    表:
    develop_year_i  occur_year_j  cij
       1               1           12
       1               2           10
       2               1           11   
    创建视图语句:
    declare @sql nvarchar(4000)
    set @sql='alter view v_xml_test as Select operRecordId, develop_year_i '
    Select @sql=@sql+',[ occur_year_j'+LTRIM(occur_year_j)+ ']=sum(case when occur_year_j='+LTRIM(occur_year_j)+ ' then indemnity_cij else null end)' From t_itoj_add_indemnity_lc Group By occur_year_j
    Print @sql
    set @sql=@sql+' From t_itoj_add_indemnity_lc Group By develop_year_i,operRecordId '
    Print @sql
    execute sp_executesql @sql
    视图:
     develop_year_i  occur_year_j1  occur_year_j2
           1             12              10
           2             11              null    
      

  4.   

    视图建好了,然后怎样能出现你最上面的<_x0020_occur_year_j1_x0020__x0020__x0020__x0020_>12.0000</_x0020_occur_year_j1_x0020__x0020__x0020__x0020_>内容呢?