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

Câu lệnh Chọn / Chèn cơ sở dữ liệu phân cấp (SQL Server)

Nếu bạn đang sử dụng SQL Server 2005 trở lên, bạn có thể sử dụng truy vấn đệ quy để lấy thông tin của mình. Đây là một ví dụ:

With tree (id, Name, ParentID, [level])
As (
    Select id, Name, ParentID, 1
    From [myTable]
    Where ParentID = 0

    Union All

    Select child.id
          ,child.Name
          ,child.ParentID
          ,parent.[level] + 1 As [level]
    From [myTable] As [child]
    Inner Join [tree] As [parent]
    On [child].ParentID = [parent].id)
Select * From [tree];

Truy vấn này sẽ trả về hàng được yêu cầu bởi phần đầu tiên (Trong đó ParentID =0) và tất cả các hàng con một cách đệ quy. Điều này có giúp bạn không?

Tôi không chắc mình hiểu điều bạn muốn xảy ra với phụ trang của mình. Bạn có thể cung cấp thêm thông tin về kết quả mong đợi khi bạn hoàn thành không?

Chúc bạn thành công!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nếu không tồn tại, không thành công trên SQL CE

  2. SQL Server Management Studio - mẹo để cải thiện quy trình mã hóa TSQL

  3. Nhận các tham số thủ tục được lưu trữ bằng C # hoặc SQL?

  4. Dữ liệu tổng hợp bảng chuyển đổi SQL

  5. Khóa hàng SQL Server