當前位置:首頁 » 編程語言 » 樹的層級sQL
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

樹的層級sQL

發布時間: 2022-05-21 09:40:14

sql樹形層級查詢

你好的!
oracle 的start with connect by
別的資料庫用cte 遞歸都能達到你要的效果!
望採納~

❷ sql樹形查詢分級

必須設置好表的parentID,ID第一級設置為0
witht1as(
selecttreelevel=1,parentID,ID,cast(1asvarchar(20))ROWNUMfrom表whereID=0
unionall
selecttreelevel=treelevel+1,t2.parentID,t2.ID,cast(t1.ROWNUM+'.'+cast(row_number()over(orderbyt2.itemid)asvarchar(10))asvarchar(20))ROWNUMfrom表t2joint1ont2.parentID=t1.id

)

select*fromt1orderbyROWNUM

❸ sql 查詢樹型結構

select parent,child from test where parent in(select child from test where parent='a')
是這樣的么??不曉得對不對.

❹ 關於SQL查詢樹結構數據的語句

方法1:
是否可以有代表層次的欄位,若有,直接根據層次欄位查詢;
方法2:
是否存在以下假設:
非父級的dept_uid的 不可能 在 parent_uid 中出現。
如果假設成立,在查出的所有dept_uid中去掉,所有在在 parent_uid 中出現id,
剩下的就是你要的了。

❺ sql里樹形結構分組排序

createtableT1(thisvarchar(10),parentvarchar(10))
insertintoT1(this,parent)
values('id1',null)
,('id2',null)
,('id3','id1')
,('id4','id2')
,('id5','id3')
,('id6','id3')
,('id7','id4')
,('id8','id7')

--sqlserver的cte功能
withtree(this,parent,root,depth)as(
selectthis,parent,thisasroot,
unionall
selecta.this,a.parent,b.root,b.depth+1asdepthfromT1a,treebwherea.parent=b.this
)
selectthis,parent,root,depth
fromtree
orderbyroot,depth,this

❻ 用c#和SQL建立二叉樹(層次序列),要深度四層,四層以內沒有數據的可以顯示「未注冊!」

使用遞歸演算法,下面是我寫的一個例子,代碼如下:
//private void InitServer(TreeNode pnode, DataTable dt)
//{
// string pid = "0";

// if (pnode != null)
// {
// pid = pnode.Value;
// }

// DataRow[] rows = dt.Select("parentid =" + pid + "");

// if (rows.Length > 0 && pnode != null)
// {
// pnode.SelectAction = TreeNodeSelectAction.Select;
// }

// for (int i = 0; i < rows.Length; i++)
// {
// TreeNode node = new TreeNode();
// node.Text = rows[i]["item"].ToString();
// node.Value = rows[i]["id"].ToString();
// node.NavigateUrl = "AddAdmin.aspx?id=" + node.Value;
// node.Target = "info";
// node.Expanded = false;
// if (pid == "0")
// {
// //tvServer.Nodes[0].ChildNodes.Add(node);
// tvServer.Nodes.Add(node);
// }
// else
// {
// pnode.ChildNodes.Add(node);
// }
// InitServer(node, dt);
// }
//}
//private DataTable GetServer()
//{
// DataTable dt = new DataTable();
// info.Open("select [id],item,parentid from Item");
// dt = info.m_table;
// info.Close();
// return dt;
//}
你自己把注釋去掉吧!有些地方自己修改一下哈,反正我用過!

❼ 如何用sql語句實現樹形的資料庫表查詢

如果樹的層數固定就可以用語句查詢,但效率比較低。例如你說的三層:
select id,v2.name+name from t1 inner join
(select id,v1.name+name as name from t1 inner join
(select id,name from t1 where parentid = 0) v1 on t1.parentid = v1.id) v2 on t1.parentid = v2.id

❽ sql查詢樹結構

如果你用SQL Server 2K5,那你有福了。因為可以用CTE(公用表表達式)來做。

這是MSDN的一個例子,你要的根據這個修改吧。
USE AdventureWorks;
GO
WITH DirectReports(Name, Title, EmployeeID, EmployeeLevel, Sort)
AS (SELECT CONVERT(varchar(255), c.FirstName + ' ' + c.LastName),
e.Title,
e.EmployeeID,
1,
CONVERT(varchar(255), c.FirstName + ' ' + c.LastName)
FROM HumanResources.Employee AS e
JOIN Person.Contact AS c ON e.ContactID = c.ContactID
WHERE e.ManagerID IS NULL
UNION ALL
SELECT CONVERT(varchar(255), REPLICATE ('| ' , EmployeeLevel) +
c.FirstName + ' ' + c.LastName),
e.Title,
e.EmployeeID,
EmployeeLevel + 1,
CONVERT (varchar(255), RTRIM(Sort) + '| ' + FirstName + ' ' +
LastName)
FROM HumanResources.Employee as e
JOIN Person.Contact AS c ON e.ContactID = c.ContactID
JOIN DirectReports AS d ON e.ManagerID = d.EmployeeID
)
SELECT EmployeeID, Name, Title, EmployeeLevel
FROM DirectReports
ORDER BY Sort;
GO

❾ MSSQL 通過分類樹,任意選擇分類,查詢分類下的所有產品.求高效SQL語句

首先LZ這么復雜的問題,就給這點分,少說也給個幾萬財富,或是支付點咨詢費。O(∩_∩)O

=========================================================================

首先你這個就10萬單品,不是太多。

使用中間表聚集的方式就可以了,但是又要兼顧實時性所以我就用索引視圖了,如果資料庫版本低可以維護一個表,其實維護表可以用外鍵。更好一些。

withPNoSec(PNO)as
(
select'100409%'unionall
select'040205%'unionall
select'010107%'
)
select
P.*
fromPNoSecA
innerjoindbo.VPNoProRelBon(B.PNOlikeA.PNO)
innerjoindbo.ProctPon(B.PID=P.ID)
whereP.Namelike'歐萊雅%'

你的程序就是構建SQL片斷(管理分類不能有重復)

如果資料庫版本低,可以使用臨時表的方式。這個你自己拿捏吧。


以上方案小巧靈活,應對幾十萬單品不在話下。

❿ sql組織機構樹查詢

組織等級是四層,應該顯示四列才完整

createtablestat(codevarchar(10),parentvarchar2(10),slevelvarchar(10));
INSERTINTOSTATVALUES('中國','0','國家');
INSERTINTOSTATVALUES('浙江省','中國','省');
INSERTINTOSTATVALUES('江蘇省','中國','省');
INSERTINTOSTATVALUES('杭州市','浙江省','市');
INSERTINTOSTATVALUES('南京市','江蘇省','市');
INSERTINTOSTATVALUES('西湖區','杭州市','縣/區');
INSERTINTOSTATVALUES('玄武區','南京市','縣/區');
SELECTA.PARENT,A.CODE,B.CODE,C.CODE
FROMSTATA,STATB,STATC
WHEREA.CODE=B.PARENT
ANDB.CODE=C.PARENT
ANDA.PARENT='中國';
PARENTCODECODECODE
----------------------------------------
中國浙江省杭州市西湖區
中國江蘇省南京市玄武區