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

SQL तालिका डेटा को अधिक कॉम्पैक्ट रूप में संशोधित कर रहा है

declare @t table(Id1 int, Id2 int)
insert @t values (100, 50)
insert @t values (    120,    70)
insert @t values (    70,     50)
insert @t values (    34,     20)
insert @t values (    50,     40)
insert @t values (    40,     10)

;with a as
(
-- find all rows without parent <*>
select id2, id1 from @t t where not exists (select 1 from @t where t.id1 = id2)
union all -- recusive work down to lowest child while storing the parent id1 
select t.id2 , a.id1
from a
join @t t on a.id2 = t.id1
)
-- show the lowest child for each row found in <*>
select id1, min(id2) id2 from a
group by id1

परिणाम:

id1         id2
----------- -----------
34          20
100         10
120         10



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में एक कॉलम को Null से Not Null में कैसे बदलें?

  2. एसक्यूएल सर्वर 2008 पेजिंग विधियां?

  3. वर्ग घोषणा में SQL Server 2008 TIME कॉलम का उपयोग करना

  4. SQL सर्वर में ऑब्जेक्ट DIE बनाएं

  5. SQL सर्वर शो टेबल समतुल्य