Мне нужно написать хранимую процедуру, чтобы вернуть некоторые данные о заказе от детей к родителям. Как-то сложно описать, что я хочу сделать, но позвольте мне попробовать: представьте, что у нас есть эта иерархия, называемая Категории: Родитель > Ребенок1 > Ребенок2 > Child3, все сохранено с использованием SQL HierarchyID:
Category Table
--------------
Cat_ID | Cat_Name
..............................
/1/ | News
/1/1/ | NewsOfUSA
/1/1/1/ | NewsOfWestUSA
/1/1/1/1/ | NewsOfWashington
И мы сохранили новости с этими категориями, как показано ниже:
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
И, наконец, я хочу выбрать для sxample Top Ten новости с этим условием:
Если NewsOfWashington содержит 10 новостей, выберите их, иначе выберите из NewsOfWestUSA, иначе выберите из NewsOfUSA, иначе выберите из News >, Пока не достигнешь десяти
И порядок выбора таков
four4,four3,four2,four1,three,two,one
Я пытался использовать рекурсивный CTE, но не смог найти правильный способ его реализации.
UNION
? - person Malk   schedule 02.08.2016