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

SQL:Tìm đường dẫn thư mục bị thiếu trong phân chia cấu trúc phân cấp

Sử dụng đường dẫn đã thêm này (11,2,'U\V\Z\L\O\Q\R\S\T') để hiển thị nhiều thư mục bị thiếu trong một đường dẫn:

with cte as (
select BaseDirID, DisplayPath = left(DisplayPath,len(DisplayPath)-charindex('\',reverse(DisplayPath)))
from t
where DirLevel > 1
  and not exists (
  select 1 
  from t i
  where t.BaseDirId = i.BaseDirId
    and i.DisplayPath = left(t.DisplayPath,len(t.DisplayPath)-charindex('\',reverse(t.DisplayPath)))
    )
union all 
select BaseDirID, DisplayPath = left(DisplayPath,len(DisplayPath)-charindex('\',reverse(DisplayPath)))
from cte t
where not exists (
  select 1 
  from t i
  where t.BaseDirId = i.BaseDirId
    and i.DisplayPath = left(t.DisplayPath,len(t.DisplayPath)-charindex('\',reverse(t.DisplayPath)))                                                   
    )
)
select distinct * 
from cte

bản trình diễn rextester: http://rextester.com/CEVGZ96613

lợi nhuận:

+-----------+-----------------+
| BaseDirID |   DisplayPath   |
+-----------+-----------------+
|         1 | A\B             |
|         1 | A\B\C\D         |
|         1 | A\B\F\G         |
|         2 | U\V             |
|         2 | U\V\M\L         |
|         2 | U\V\W\X         |
|         2 | U\V\Z           |
|         2 | U\V\Z\L         |
|         2 | U\V\Z\L\O       |
|         2 | U\V\Z\L\O\Q     |
|         2 | U\V\Z\L\O\Q\R   |
|         2 | U\V\Z\L\O\Q\R\S |
+-----------+-----------------+



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Điền tập dữ liệu với tên bảng từ quy trình đã lưu trữ

  2. Có thể thay đổi ngày kiểu dữ liệu trong Sql Server không

  3. Cách bỏ qua các khoảng trùng lặp trong truy vấn sau để có được thời gian theo dõi chính xác mỗi ngày

  4. sp_send_dbmail được thực thi từ công việc không thành công với kết quả truy vấn được đính kèm dưới dạng tệp

  5. Truy vấn con v / s tham gia bên trong máy chủ sql