将Select的几个返回字符压缩成一个字符串

时间:2010-07-06 19:35:48

标签: sql sql-server tsql

简单地说,我有一个选择将返回多个单个字符,因此将无法工作。有没有办法将所有单个字符组合成一个可返回的字符串?

我目前缓慢而丑陋的解决方案:

,'('+(Select Left(max(AE_D1),1) 
        FROM ACCESS_EVENTS
      WHERE LEFT(AE_D1,1) like 'W'
        AND replace(HR.firstname,' ','')+' '+replace(HR.lastname, ' ','') LIKE Left(AE_D2,len(replace(HR.firstname,' ','')+' '+replace(HR.lastname, ' ','')))) +')'
+'('+(Select Left(max(AE_D1),1) 
        FROM ACCESS_EVENTS
       WHERE LEFT(AE_D1,1) like 'M'
         AND replace(HR.firstname,' ','')+' '+replace(HR.lastname, ' ','') LIKE Left(AE_D2,len(replace(HR.firstname,' ','')+' '+replace(HR.lastname, ' ','')))) +')'

。 。 。重复,直到涵盖所有案例。 。

编辑 - 额外信息:每个“W”或“M”是访问事件名称的第一个字符,与事件发生的位置有关。大约有9种不同的事件角色需要覆盖。查询的目的是显示一个人何时拥有与其姓名相关联的多个区域的事件。现在的问题只是干净地展示它。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我想你想阅读this