oracle11里面有一个函数可以合并字符串的。
MS的应该没有。
通用的办法是使用游标,select按照clnvCode排序,然后记录本条记录的clnvCode,并记录cPosCode值,检查下一个的时候,用上一条记录的clnvCode对比本条的clnvCode,如果相等,就把cPosCode内容与上次记录的cPosCode相加。
请参考这个函数:http://www.jb51.net/article/18772.htm,方法就是在数据库里自建一个这样的函数,然后就可以用了,你可以对它的函数做小小修改:
1 select @Str = @Str + [cPosCode]+',' from Table where xxxx
2 Create FUNCTION AggregateString
(
@ccode varchar(20) , @catch varchar(20)
)
3select @Str = @Str + [cPosCode]+',' from Table where where [cinvCode] = @ccode and [cBatch] =@catch
select cInvCode,cBatch,
group_concat(cPosCode) from 表 group by cInvCode,cBatch
试试,看行不
估计不可以。