1樓:匿名使用者
create table emp
(idint,
parentid int
)insert into emp values(1 , 0)
insert into emp values(5 , 3)
insert into emp values(3 , 1)
insert into emp values(4 , 2)
insert into emp values(2 , 1)
--按id拼個路徑出來,然後按路徑排序即可
--這是mssql的寫法,db2我不知道
--search breadth first by id set sort,估計是按用來產生排序的
with report(parentid,id,level)as(
select parentid,id,convert(varbinary(max),id)
from emp where parentid='0'
union all
select emp.parentid,emp.id,level+convert(varbinary,emp.id)
from report join emp
on emp.parentid=report.id
)select id,parentid from report
order by level
--或者
with report(parentid,id,level)as(
select parentid,id,convert(varchar(max),right('00000'+id,5))
from emp where parentid='0'
union all
select emp.parentid,emp.id,level+'-'+convert(varchar(max),right('00000'+emp.id,5))
from report join emp
on emp.parentid=report.id
)select id,parentid from report
order by level
sql中如何根據每個節點查出它下面的子孫節點(表名:node),請儘量詳細,謝謝
2樓:匿名使用者
-- oracle
select * from node t
start with t.cid = 1
connect by prior t.cid = t.pid
3樓:匿名使用者
沒理解你
的意思--例如節點1的所有子節點
declare @
內id int
set @id=1
;with roy as
(select cid,name,pid from node where cid=@id
union all
select node.cid,node.name,node.pid from node inner join roy on roy.cid=node.pid
)select * from roy
要這個結果?容
db2資料庫修改某個欄位的長度的語句
a.首先記住一個原則 一個 sql 語句只能改變每列的一個屬性 例如,型別或可空性 b.你的錯誤在於 1 varchar 1 和 not null 一起寫。2 set data type varchar 1 寫成了 set data column name varchar 1 c.所以 1 alte...
如何用SQL語句建立資料庫,sql語句 如何建立一個表啊
用如下語句 create database studbon primary 預設就屬於primary檔案組,可省略 資料檔案的具體描述 name studb data 主資料檔案的邏輯名稱filename d studb data.mdf 主資料檔案的物理名稱 size 5mb,主資料檔案的初始大小...
怎樣在C中寫一句SQL語句,判斷資料庫中的日期對比系統當前日期是否過期了
過期的話應該是表裡的時間小於當前時間 select from tablename where time getdate 看看查詢結果就知道了 或者 選擇 from tablename的則datediff d,getdate 到期日期 30如果僅統計30天到期 select from tablenam...