1樓:匿名使用者
with tt(select 語句1 --初始化union all
select 語句2)
select * from tt
在select 語句2中from的表裡關聯with後面的表名tt就形成遞推了。
2樓:
給樓主例子
化解32層遞迴限制
sql 怎麼遞迴查詢的方法:
3樓:海天盛
1.建立測試表,createtabletest_connect(idnumber,p_idnumber);
2.插入測試資料,
insertintotest_connectvalues(1,1);
insertintotest_connectvalues(2,1);
insertintotest_connectvalues(3,2);
insertintotest_connectvalues(4,3);
提交;3.查詢資料表的內容,選擇*fromtest_connect,4.執行遞迴查詢語句,將答案新增到nocycle元素中,就不會有[ora-01436:connectbyerrorintheuserdata]。執行結果如下:
select*
來自test_connectt
從id=4開始
由nocyclepriort連線。p_id=t.i.
4樓:匿名使用者
with temp as (select id,deptid,upperdeptid from prodclas where 上級部門字段='' union all
select b.id,b.deptid,b.upperdeptid from temp a
inner join 部門資料表 b on b.上級部門字段 = a.當前部門字段)
select 當前部門 from temp向下遞迴查詢
5樓:匿名使用者
遞迴查詢貌似只是oracle單獨提供出來的。其他資料庫沒有提供遞推查詢吧。。。。
我當時做的專案是通過乙個公司查出所有的子公司和子公司的子公司。。。
我做第乙個專案的時候就是用的start with connect by prior做的。沒找到其他遞迴方法。。
第二個專案的時候,這種樹形結構有可能無限層,這個時候start with connect by prior也就不可靠了,速度慢。如果這個表可以新增乙個字段,建議你加乙個字段,當時我取名叫nodeids,varchar型別的,用來存放父類的nodeids+自己的id。
比如說頂層部門的id為1,那麼該部門的nodeids就是,1,,然後他下一層部門id是2,則這個部門的nodeids的值就是,1,2,....id是2的部門的下一層部門id為3的話,則這個部門的nodeids的值就是,1,2,3,,這樣的話,你就完全好查詢的。。。通過傳入id所對應的部門的nodeids去like一下,就獲得了他及其所有子部門。
比如你要查id是1的所有子部門,那麼你就拿,1,去資料庫like一下,那麼,1, ,1,2, ,1,2,3, 都拿出來了。。。後面兩個肯定是前面那個的子部門。。。
不知道這樣講你能不能看懂,不懂再追問哈。
sql語句中怎麼實現遞迴查詢
6樓:
在sql server 2000 中你可以先一些自定義函式,或一些儲存過程,實現遞迴:
select level,typenamefrom producttype t
start with t.parentid=0connect by prior t.producttypeid= t.parentid;
SQL查詢多條符合條件的記錄,SQL查詢滿足兩個條件的重複記錄只顯示2條記錄的方法
select from table where column a in select 條件n from table where 總之你的多個 條件 如果能用select出來的話,把結果放到in裡就可以了。查詢符合條件的記錄,關鍵字 where 假如 表 table 中有3個字段,t1,t2,t3並且...
sql查詢分析器怎麼用,sql查詢分析器 裡執行指令碼怎麼操作
最簡單的用法是用來測試sql語句指令碼。也可以用來sql指令碼中每塊的查詢效能等。詳細的還是參考相關教程比較好。這裡的答案是很零亂的。首先你確認是否安裝sql server資料庫 然後在開始選單 microsoft sql server 查詢分析器 登陸後輸入以上語句按f5執行 sql查詢分析器 裡...
sql查詢,唯一性查詢輸出要求,SQL查詢,唯一性查詢輸出要求
樓上的這樣寫是不行滴,會把不在表2,3中的人漏掉,應該用left join左連線 select sheet1.name,sheet2.xl,sheet3.zc from sheet1 left join sheet2 on sheet2.key sheet1.key and sheet2.zg y ...