Ich muss eine Stored Procedure schreiben, um einige Daten zu einer Bestellung von Kindern zu Eltern zurückzugeben. Es ist irgendwie kompliziert zu beschreiben, was ich tun möchte, aber lass es mich versuchen: Stellen wir diese Hierarchie genannt Kategorien haben: Parent> Child1> Child2> Child3, alle gespeicherten mit SQL HierarchyID:SQL HierarchyID verwenden, um von Children zu Eltern auszuwählen
Category Table
--------------
Cat_ID | Cat_Name
..............................
/1/ | News
/1/1/ | NewsOfUSA
/1/1/1/ | NewsOfWestUSA
/1/1/1/1/ | NewsOfWashington
Und wir haben Wie unten Nachrichten mit diesen Kategorien gespeichert:
News Table
-------------
News_ID | FK_Cat_ID | News_Content
.........................................
0001 | /1/ | one
0002 | /1/1/ | two
0003 | /1/1/1/ | three
0004 | /1/1/1/1/ | four1
0005 | /1/1/1/1/ | four2
0006 | /1/1/1/1/ | four3
0007 | /1/1/1/1/ | four4
und schließlich Ich möchte zum Beispiel To auswählen p Zehn Nachrichten mit dieser Bedingung:
Wenn NewsOfWashington 10 Nachrichten hat sie dann wählen, sonst wählen Sie aus NewsOfWestUSA, sonst wählen Sie aus NewsOfUSA, sonst wählen Sie aus Nachrichten, Bis Sie erreichen zehn
Und die Reihenfolge ausgewählt werden, ist dies
four4,four3,four2,four1,three,two,one
Ich habe versucht, rekursive CTE zu verwenden, konnte aber keine geeignete Methode zur Implementierung finden.
Verwenden Sie mehrere Abfragen mit einer 'UNION'? – Malk
@Malk, Nein Nein, nur diese zwei Tabellen Ich möchte zuerst überprüfen, ob Nachrichten mit NewsOfWashington 10 oder nicht erreichen, wenn nicht von seinem Eltern NewsOfWestUSA usw. auswählen ... – Yasin