Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

कॉलम मान कनेक्टिविटी खोजें

मुझे पूरा यकीन है कि आपको एक पुनरावर्ती CTE की आवश्यकता है। हालांकि, आपके नमूना परिणामों का कोई मतलब नहीं है।

निम्नलिखित मूल रूप से वही करता है जो आप चाहते हैं:

with cte AS (
      select nod1, nod2, nod_length as Total_length,
             convert(varchar(max), concat('-', nod1, '-', nod2, '-')) as nodes, 1 as lev
      from tbl_nodes n
      where nod1 = 'A'
      union all
      select cte.nod1, n.nod2, cte.Total_length + n.nod_length,
             convert(varchar(max), concat(cte.nodes, n.nod2, '-')) as nodes, lev + 1
      from cte join
           tbl_nodes n
           on cte.nod2 = n.nod1
      where nodes not like concat('%-', n.nod2, '-%') 
     )
select nodes, total_length
from cte
where not exists (select 1
                  from cte cte2
                  where cte2.nodes like concat(cte.nodes, '_%')
                 );

यहां एक डीबी<>बेला है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. उप-प्रश्नों के प्रदर्शन का अनुकूलन करें

  2. आप लिंक से ADO.NET इकाई ढांचे के साथ पूर्ण पाठ खोज (FTS) कैसे करते हैं?

  3. दूरस्थ डेटाबेस कनेक्शन लंबे समय तक खुला रहता है

  4. रिपोर्टिंग करते समय एसक्यूएल क्वेरी समस्या

  5. SQL सर्वर 2012 में साप्ताहिक ऑटो बैकअप कैसे सेटअप करें?