表結構是這樣的
部門 上級部門
a b
b c
c d
a a
b b
c c
求一條sql語句,根據a查其上級部門,查詢結果為
上級部門bc
d用函式
create table tb (部門 varchar(20),上級部門 varchar(20))
insert into tb select 'a','b' union all select 'b','c' union all select 'c','d'
union all select 'a','a' union all select 'b','b' union all select 'c','c'
--select * from tb
create function test_f (@name varchar(20))
returns @ta table(上級部門 varchar(20))
as begin
--select @name=上級部門 from tb where 部門=@name and 部門!=上級部門
while exists(select 1 from tb where 部門=@name and 部門!=上級部門)
begin
insert @ta select 上級部門 from tb where 部門=@name and 部門!=上級部門
select @name=上級部門 from tb where 部門=@name and 部門!=上級部門
endreturn
endselect * from dbo.test_f('a')
刪除:drop function test_f
drop table tb
上級部門
-------------------- bc
d(所影響的行數為 3 行)
用SQL語句實現遞迴演算法
本文通過乙個bom表的例子,分別介紹在sql server2000和sql server2005中如何編寫遞迴演算法。一 建立測試資料 createtablebillofmaterial productno nvarchar 15 父元件編號 productname nvarchar 50 子元件名...
SQL語句求日期
sql語句求日期 select add months sysdate,1 lastday from dual 上個月的今天 select to char add months last day sysdate 1 yyyy mm dd lastday from dual 上個月的最後一天 selec...
sql語句遞迴查詢
表結構 給出乙個結點找到該節點的所有 子 節點 with c depts as select dept.from department dept where dept.pptr 父節點id union all select dept.from c depts department dept wher...