मैं एक कदम को हटाने के लिए सीटीई को फिर से लिखने की कोशिश करूंगा यानी
;cte as (
select a.first_num, a.second_num, a.first_num as first_key, 1 as sequence_count
from T_SEQ_FF a where not exists (select 1 from T_SEQ_FF b where a.first_num = b.second_num)
union all
select a.first_num, a.second_num, cte.first_key, cte.sequence_count + 1
from T_SEQ_FF a
inner join cte on a.first_num = cte.second_num
)
select *
from cte
option (maxrecursion 0);
यदि केवल एक मूल तत्व है तो इसे एक चर के रूप में क्वेरी में पास करना बेहतर होगा ताकि क्वेरी ऑप्टिमाइज़र द्वारा मान का उपयोग किया जा सके।
कोशिश करने की एक और चीज है सबक्वेरी के बिना रूट तत्वों को प्राप्त करने के लिए क्वेरी को बदलना यानी दूसरा_नम शून्य या first_num =second_num है।