Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sắp xếp menu đệ quy SQL

Ok, hiểu rồi :) - Điều này có vẻ hoạt động ở đây.

DECLARE @Categories TABLE (
 ID int PRIMARY KEY
,Title varchar(256)
,ParentID int
)

INSERT INTO @Categories
VALUES
 (1, 'All', 0)
,(2,'Banking', 8)
,(3,'USAA Checking', 2)
,(4,'USAA Mastercard', 2)
,(5,'Medical', 8)
,(6,'Jobs', 8)
,(7,'Archive', 1)
,(8,'Active', 1)
,(9,'BoA Amex', 2)


;
WITH  CategoryTree
        AS (SELECT  r.ID, r.Title, 0 Level, r.ParentID,
                    CAST(r.Title AS VARCHAR(1000)) AS "Path"
            FROM    @Categories r
            WHERE   r.ParentID = 0
            UNION ALL
            SELECT  c.ID, c.Title, p.Level + 1 AS Level, c.ParentID,
                    CAST((p.path + '/' + c.Title) AS VARCHAR(1000)) AS "Path"
            FROM    @Categories c
                    INNER JOIN CategoryTree p
                      ON p.ID = c.ParentID
           )
  SELECT  ID, REPLICATE('-----', Level) + Title AS Title, [Path]
  FROM    CategoryTree
  ORDER BY [Path]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Toán tử GIỮA so với> =VÀ <=:Có sự khác biệt về hiệu suất không?

  2. Di chuyển dữ liệu SQL từ bảng này sang bảng khác

  3. Tác vụ tập lệnh SSIS C # 2012 tham chiếu WinSCPnet.dll không thành công khi chạy từ SQL Server Agent với ngoại lệ đã bị ném bởi mục tiêu của lời gọi

  4. Nhóm theo cột và nhiều hàng thành một hàng nhiều cột

  5. Tải lên trang tính Excel và nhập dữ liệu vào cơ sở dữ liệu SQL Server