用sql的方法實現遞迴樹 -----ms sql server中
tb_city表結構如下
id name parentid
1 湖北 0
2 湖南 0
3 武漢 1
4 仙桃 1
5 長沙 2
6 蔡甸 3
定義函式
create function c_tree(@initid int)/*定義函式c_tree,輸入引數為初始節點id*/
returns @t table(id int,name varchar(100),parentid int,lev int)/*定義表t用來存放取出的資料*/
begin
declare @i int/*標誌遞迴級別*/
set @i=1
insert @t select id,name,parentid,@i from tb_city where id=@initid
while @@rowcount<>0
begin
set @i=@i+1
insert @t select a.id,a.name,a.parentid,@i from tb_city as a,@t as b
where b.id=a.parentid and b.lev=@i-1
endreturn
end
執行
使用函式
select * from c_tree(1) /*取湖北下面的子節點*/
oracle中的實現
select * from tb_city
/*此處可寫where語句限制*/
start with id=1
connect by prior id=parentid
怎樣用MySQL建立function
以前使用 sql server 的時候經常用 function 對一些資料的處理比較方便,現在資料庫轉移到 mysql 上以後,同樣也希望能保留相同的功能,慶幸的是 mysql 也支援function 現來分享下在 mysql 中怎樣建立 function 工具 原料 mysql mysql wor...
SQL 自定義函式FUNCTION
自定義函式 1 標量函式 create function getnamebyid2 js id int returns varchar 32 定義返回的資料型別 asbegin declare js name varchar 32 宣告乙個區域性變數 select js name select f ...
用map實現sql拼接
今天在寫二維報表 某列的內容隨著帳號不同會變化 的時候想到了sql拼接。首先你需要在你的實體類中定義乙個map集合,看jeesit的原始碼它是把這個屬性定義在基類中,乙個意思,然後通過這個類的屬性去獲取就行了,下面的 有些麻煩,通過上面這句話你可以寫出你想要的拼接。大概是這樣定義的 baseenti...