2010-07-06 47 views
1

簡單地說,我有一個select將返回多個單個字符,因此將無法工作。有沒有什麼辦法可以將所有單個字符合併成一個可返回的字符串?將Select的幾個返回字符壓縮爲一個字符串

我目前的緩慢和醜陋的解決方案:

,'('+(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個不同的事件字符可以覆蓋。查詢的要點是顯示某個人何時有來自與其名稱相關聯的多個區域的事件。現在的問題就是乾淨地顯示它。

+0

所有這些字符串操作都會使索引不可用,這就是爲什麼數據不應該像這樣存儲的原因。 – 2010-07-06 19:43:29

+0

是的,HR表有很多不足之處。但是,我無法解決這個問題。 :( – 2010-07-06 19:53:11

+0

你正在尋找什麼情況? – 2010-07-06 19:57:05

回答

0

我想你想讀​​。

+0

非常感謝。這是解決問題的實例和不同方法的絕佳來源。 – 2010-07-13 17:45:36

相關問題