考慮在很多人的SQL Server 2005數據庫與一組數據,一大塊人是結婚。爲了跟蹤人與人之間的關係,存在Relationship表,其用於將一個人的ID鏈接到另一個人的ID。 A 關係類型在每個關係記錄上用於指示所討論的兩個人(duh)之間存在的關係類型:「已婚」,「是兒子」,「是女兒」等。提取唯一對
對於已婚人士,表格中有兩個關係記錄 - 一個顯示Person-A與Person-B結婚,另一個記錄顯示Person-B與Person-A結婚。對於婚姻來說,沒有兩個記錄都會被認爲是錯誤的,儘管在數據庫中有一些非互惠記錄。 (這是一種遺傳設計,我沒有改變這種方法的自由。)
RelID Person1 Person2 RelationshipType
-----------------------------------------
1 1001 1010 Married //Reciprocated by RelID 4
2 1002 1011 Married //Reciprocated by RelID 5
3 1003 1012 Married //Reciprocated by RelID 6
4 1010 1001 Married //Reciprocated by RelID 1
5 1011 1002 Married //Reciprocated by RelID 2
6 1012 1003 Married //Reciprocated by RelID 3
7 1004 1013 Married //Not properly reciprocated
我需要做的是從表格中提取獨特的已婚夫婦。
我創建了一個名爲GetOrderedPair(VAL1,val2)將這需要2個人ID和返回按順序的兩個值的逗號分隔的字符串值的功能。這樣,無論我是否參照上述示例數據,從RelID爲1或RelID爲4(往返對記錄)的記錄引用Person1和Person2,它總是返回相同的字符串值。
我不禁想到有一種更好的方法可以逃避我。使用這個功能是最好的方法嗎?你還可以推薦什麼?
謝謝,當然,提前。 :-)
非常明顯。現在我很慚愧地問過這個問題。謝謝,埃裏克。 – witttness 2009-06-02 22:39:37