好吧,我正在寫一個針對sql server 2005中的第三方數據庫的報告。大多數情況下,它的規範化除了一個表中的一個字段。他們有一個用戶表(包括組)。這個表有一個用戶ID字段(PK),一個IsGroup字段(位),一個成員字段(文本)這個成員字段有一個逗號分隔的這個組的所有成員列表或者(如果不是組),用逗號分隔這個成員所屬的組的列表。對SQL Server 2005中的CSV字段進行報告DB
問題是編寫一個存儲過程的最佳方式是顯示用戶在哪些組中?我有一個函數將id分析出來。所以最好的辦法是創建一個遊標循環遍歷每個組並解析出用戶標識,將它們寫入臨時表(使用組標識),然後從臨時表中選擇?
用戶表
實施例:
ID | IsGroup |名稱|成員
1個|真|管理| 3
2 |真|電源| 3,4-
3 |假|鮑勃| 1,3
4 |虛假|蘇珊| 2
5 |真|中| 6
6 |虛假|比爾| 5
我希望我的查詢,以顯示: 羣ID |用戶名
1 | 3
2 | 3
2 | 4
5 | 6
希望是有道理的......
基於一個事實,即SQL Server不解析文本數據非常好。解析未知長度的文本字段的唯一方法是通過循環或光標。 – mrdenny 2009-02-08 21:40:39
這就是我所害怕的。感謝您的幫助。 – user33209 2009-02-09 20:10:03