鱼大很生气,后果很严重
不小心把鱼老大的ID(paoluo)写成了puolao ,使得老大很伤心,后果是老大的空间一度打不开,使得我的收集工作受阻罪过!!
只收集了他的两贴
第一贴
查找树型结构的根结点.
一个table t1 保存着多叉树型结构,比如
P_cid c_cid
--------------
A C
B C
C D
C E
F E
另一个table t2 保存需要查找的节点,比如
cid
----
D
E
请问如何查出这个结果?谢啦
cid top_cid
---------------
D A
D B
E A
E B
E F
--創建測試環境 Create Table T1 (P_cid Varchar(10), c_cid Varchar(10)) Insert T1 Select 'A ', 'C ' Union All Select 'B ', 'C ' Union All Select 'C ', 'D ' Union All Select 'C ', 'E ' Union All Select 'F ', 'E ' Create Table T2 (cid Varchar(10)) Insert T2 Select 'D ' Union All Select 'E ' GO --創建函數 Create Function F_GetChildren() Returns @Tree Table(cid Varchar(10), top_cid Varchar(10)) As Begin Insert @Tree Select Distinct A.c_cid, A.P_cid From T1 A Inner Join T2 B On A.c_cid = B.cid While @@ROWCOUNT > 0 Insert @Tree Select Distinct B.cid, A.P_cid From T1 A Inner Join @Tree B On A.c_cid = B.top_cid Where A.P_cid Not In (Select top_cid From @Tree) Delete A From @Tree A Inner Join T1 B On A.top_cid = B.P_cid Left Join T1 C On B.P_cid = C.c_cid Where C.P_cid Is Not Null Return End GO --測試 Select * From dbo.F_GetChildren() Order By cid, top_cid GO --刪除測試環境 Drop Table T1, T2 Drop Function F_GetChildren --結果 /* cid top_cid D A D B E A E B E F */
Create Table 表1 (单号 Int, 项目1 Varchar(10)) Insert 表1 Select 1, 'A ' Union All Select 1, 'B ' Union All Select 2, 'A ' Union All Select 2, 'B ' Union All Select 3, 'C ' Create Table 表2 (单号 Int, 项目2 Varchar(10)) Insert 表2 Select 1, 'A ' Union All Select 1, 'C ' Union All Select 2, 'C ' Union All Select 4, 'A ' GO Select IsNull(A.单号, B.单号) As 单号, A.项目1, B.项目2 From 表1 A Full Join 表2 B On A.单号 = B.单号 And A.项目1 = B.项目2 Order By 单号, IsNull(A.项目1, B.项目2) GO Drop Table 表1, 表2 --Result /* 单号 项目1 项目2 1 A A 1 B NULL 1 NULL C 2 A NULL 2 B NULL 2 NULL C 3 C NULL 4 NULL A */
[解决办法]
沒生氣,只是去偷偷的哭了下。 :)
[解决办法]
其實我的blog是以前隨便寫的點東西,沒大多價值。
後期寫的些代碼,都懶的放blog上了。
上老大的blog去看看吧,那上面比較有技術含量。
[解决办法]
辛苦辛苦~~