SQL 查詢樹節點的問題

發布 科技 2024-05-24
6個回答
  1. 匿名使用者2024-02-11

    它是基於子節點來查詢根節點下的祖父節點,通常我會使用該函式。

    create function [dbo].[getunderrootparent]

    id int)

    returns int

    declare @aid

    從 id=@id 的表中選擇 @aid=parentid

    if @aid is null

    return null

    elseif @aid=1

    return @id

    else return

    您可以在 SQL 中呼叫該函式來獲取目標 ID 號。

  2. 匿名使用者2024-02-10

    使用標準的 SQL WITH 實現遞迴查詢(sql2005 或更高版本肯定支援,sql2000 不清楚是否支援):

    with subqry(id,name,pid) as (select id,name,pid from test1 where id = 5

    union all

    select ,,from test1,subqrywhere =

    select * from subqry;

  3. 匿名使用者2024-02-09

    你的表的結構是什麼樣的,它是否包含兩個字段,子節點和父節點?

  4. 匿名使用者2024-02-08

    Oracle 中的 select 語句可用於從...開始。Connect by Prior 子句實現遞迴查詢,結構化查詢中使用 Connect By 的基本語法:

    select * from tablename start with cond1

    connect by prior cond2

    where cond3;

    簡單來說,樹結構儲存在乙個表中,例如,乙個表中有兩個字段

    id,parentid。然後,通過指示每個記錄的父級是誰,可以形成樹結構。

    使用上述語法的查詢可以獲取樹的所有記錄。

    cond1 是根節點的限定符,當然限定符可以放寬,得到多個根節點,其實就是多棵樹。

    cond2 是連線條件,其中上一條記錄用 Prior 表示,例如,Connect by Prior id=praentid 表示上一條記錄的 ID 是這條記錄的 Praentid,即這條記錄的父親是上一條記錄。

    cond3 是乙個篩選條件,用於篩選返回的所有記錄。

  5. 匿名使用者2024-02-07

    在 oracle 中,有一種稱為分層查詢的查詢型別,可以執行您所說的查詢。

    select * from table start with id=start node connectionby prior id=parentid;

    你可以嘗試一下,你可以線上學習特定的語法。

  6. 匿名使用者2024-02-06

    是直接詞節點還是包含子節點的詞節點..?

相關回答
13個回答2024-05-24

呵呵,你是一堆問題:

優秀,好......(人數)每級: >>>More

12個回答2024-05-24

第二天留存? add_months(to_date(to_char(sysdate,'yyyymmdd'),'yyyymmdd'),-2) >>>More

4個回答2024-05-24

select * from log a,(select ,max(date) from logwhere id='10000' >>>More

17個回答2024-05-24

select cast( as decimal(15,2))

結果可以換成您的字段。 >>>More

5個回答2024-05-24

具有檢視或索引。

create index >>>More