रिकर्सिव क्वेरीज़ के साथ काम करना

SQL Server में Hierarchical और Recursive Queries

Jasmin Ludolf

Content Developer

एक IT-संगठन की हाइरार्की

संगठन का विवरण:

  • ID - कर्मचारी ID
  • कर्मचारी का Name
  • कंपनी में JobTitle
  • कंपनी में Department
  • कंपनी में Supervisor

हाइरार्की बताने वाले फ़ील्ड:

  • ID
  • Supervisor

कर्मचारी 2 का Supervisor 1 है

SQL Server में Hierarchical और Recursive Queries

IT-संगठन

+-----------------------+---------------------+------------+------------+
|ID | Name              | Position            | Department | Supervisor |    
|-----------------------|---------------------|------------|------------|
| 1 | Heinz Griesser    | IT Director         | IT         | 0          |
| 2 | Andreas Sitter    | Security Manager    | IT         | 1          |
| 3 | Thomas Bergman    | Innovation Manager  | IT         | 1          |
| 4 | Hannes Berg       | Operation Manager   | IT         | 1          |
| 5 | Anna Kruggel      | Administrator       | IT         | 4          |
| 6 | Karin Pacher      | Developer           | IT         | 4          |
+-----------------------+---------------------+------------+------------+
SQL Server में Hierarchical और Recursive Queries

हाइरार्किकल डेटा के आम कार्य

किसी रिकॉर्ड की हाइरार्की पाएँ

आपका Supervisor कौन है?


हाइरार्की का लेवल पाएँ

किसी संगठन का हाइरार्की लेवल निकालें


रिकर्शन परिणाम एक फ़ील्ड में जोड़ें

आपके पास कौन-कौन से Supervisors हैं?

SQL Server में Hierarchical और Recursive Queries

हाइरार्की निकालें

WITH hierarchy AS (
    SELECT ID,Supervisor
        FROM employee 
        WHERE supervisor = 0

UNION ALL SELECT emp.ID, emp.Supervisor FROM employee emp
JOIN hierarchy ON emp.Supervisor = hierarchy.ID) SELECT * FROM hierarchy
SQL Server में Hierarchical और Recursive Queries

हाइरार्की निकालें

+---+-----------+
|ID |Supervisor |
|---|-----------|
|1  | 0         |
|2  | 1         |
|3  | 2         |
+---+-----------+
SQL Server में Hierarchical और Recursive Queries

हाइरार्की का लेवल निकालें

WITH hierarchy AS (
    SELECT ID, Supervisor, 1 as LEVEL
        FROM employee
           WHERE Supervisor = 0

UNION ALL SELECT emp.ID, emp.Supervisor, LEVEL + 1 FROM employee emp
JOIN hierarchy ON emp.Supervisor = hierarchy.ID ) SELECT * FROM hierarchy
SQL Server में Hierarchical और Recursive Queries

हाइरार्की का लेवल निकालें

+---+-----------+-------|
|ID |Supervisor | Level |
|---|-----------|-------|
|1  | 0         | 0     |
|2  | 1         | 1     |
+---+-----------+-------+
SQL Server में Hierarchical और Recursive Queries

रिकर्शन परिणाम एक फ़ील्ड में जोड़ें

WITH hierarchy AS (
    SELECT ID, Supervisor, CAST('0' AS VARCHAR(MAX)) as PATH
        FROM employee
        WHERE Supervisor = 0

UNION ALL SELECT emp.ID, emp.Supervisor, Path + '->' + CAST(emp.Supervisor AS VARCHAR(MAX)) FROM employee emp INNER JOIN hierarchy ON emp.Supervisor = hierarchy.ID ) SELECT * FROM hierarchy
SQL Server में Hierarchical और Recursive Queries

रिकर्शन परिणाम एक फ़ील्ड में जोड़ें

+-----+--------+
| PATH         |
|--------------|
| 0 -> 1 -> 4  |
+-----+--------+
SQL Server में Hierarchical और Recursive Queries

IT-संगठन पर क्वेरी करें

SQL Server में Hierarchical और Recursive Queries

Preparing Video For Download...