Web appOpen in Telegram

Postسلام دوستان

28 December 2025
H
سلام دوستان 💼🌳 چالش همیشگی ما با درخت‌های سلسله‌مراتبی در SQL! همیشه وقتی با ساختار درختی کار می‌کنیم، معمولاً از ریشه شروع می‌کنیم و تا برگ‌ها می‌رویم. اما یه سؤال جالب پیش میاد: ❓ فرض کنید شما یه نقطه وسط درخت دارید و می‌خواید بفهمید این رکورد به کدوم ریشه یا مدیر اصلی وصل می‌شه؟ برای مثال: مشخصات یک کارمند را دارید و می‌خواید ببینید در چارت سازمانی، مسیرش تا مدیر ارشد کجاست. اینجاست که باید برعکس فکر کنید: از پایین به بالا حرکت کنید، نه از بالا به پایین. و نکته جالب: در کدنویسی و SQL، مدل بازگشتی فرقی نمی‌کنه، فقط جهت پیمایش عوض می‌شه 😎 🔹 ساختار جدول عمومی (می‌تونید تست کنید) CREATE TABLE Table1 ( Id UNIQUEIDENTIFIER PRIMARY KEY, Name NVARCHAR(100), ParentId UNIQUEIDENTIFIER NULL ); Id → شناسه رکورد ParentId → شناسه والد (NULL یعنی ریشه) Name → نام رکورد 🔹 کوئری CTE برای پیدا کردن مسیر تا ریشه DECLARE @InputId UNIQUEIDENTIFIER = 'YOUR_RECORD_ID_HERE'; WITH ReverseCTE AS ( -- شروع از رکورد مورد نظر SELECT Id, ParentId, Name, 0 AS Level FROM Table1 WHERE Id = @InputId UNION ALL -- پیمایش به سمت والد SELECT p.Id, p.ParentId, p.Name, c.Level + 1 FROM Table1 p INNER JOIN ReverseCTE c ON c.ParentId = p.Id WHERE c.ParentId IS NOT NULL ) SELECT * FROM ReverseCTE ORDER BY Level DESC; -- ریشه بالای خروجی اگر فقط ریشه براتون مهمه: SELECT TOP 1 Id, Name FROM ReverseCTE ORDER BY Level DESC; 🔹 نکات حرفه‌ای 💡 برای هر عمق درختی جواب می‌ده مناسب گزارش‌ها، داشبوردها و تحلیل سلسله‌مراتبی می‌تونید مسیر رو به صورت رشته /Root/Parent/Child/... هم بسازید تا راحت نمایش بدید 🧠 تجربه شخصی: وقتی شما از پایین شروع می‌کنید و مسیر تا ریشه رو پیدا می‌کنید، دید کامل‌تری نسبت به سلسله‌مراتب پیدا می‌کنید. مثل اینه که بفهمید یک کارمند دقیقاً تحت چه مدیریتی و چه شاخه‌ای از سازمان قرار گرفته.
20 · 1.8K ·

Nearby in the feed

HHamidrezaسلام دوستان 🔍 یک چالش جالب در SQL Server که می‌تونست یک مجموعه رو زمین‌گیر کنه! چند وقت پیش در یکی از مجموعه‌ها با یک مشکل عجیب مواجه بودن 👀 سیستم از یک تعداد کHHamidrezaسلام دوستان 📉 Shrink در SQL Server به روایت یک فضای کار اشتراکی! فرض کن یکی میره یه فضای کار اشتراکی 🏢 اوایل کارش کوچیکه، یه میز اشتراکی می‌گیره. کم‌کم کارش می‌
this message
HHamidrezaتا حالا Running Total تو SQL Server نوشتی و با خیال راحت رد شدی؟ 😌 📌 معمولاً برای Running Total یه چیزی شبیه این می‌نویسیم: SUM(TotalDue) OVER ( PARTITION BY CuHHamidrezaسلام دوستان 🚨 تا حالا شده بری Shrink File و با خودت بگی: «اینا رو با یه SELECT نمیشه دید؟!» 🤔 خبر خوب برای DBAها و Backend Engineerها 🎉 بله… میشه! و حتی تمیزتر،
SSQL ServerSQL Server@sql_server · channel · Tech
3 907subscribers868average post reach
Venue feed Open in Telegram

An open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog · Search · How we count