sqlserver樹形
㈠ sqlserver查詢樹形結構的所有子節點
sqlserver查詢樹形結構的所有子節點
用標准sql的with實現遞歸查詢(sql2005以上肯定支持,sql2000不清楚是否支持):
with subqry(id,name,pid) as (
select id,name,pid from test1 where id = 5
union all
select test1.id,test1.name,test1.pid from test1,subqry
where test1.pid = subqry.id
)
select * from subqry;
㈡ 請大俠們指導一下sqlserver中怎麼用存儲過程也一個樹形結構出來
可以分三個階段:
1. 數據採集與准備
2. 數據計算(涉及計算中的中間存儲), 題主中的「那些方面決定」應該主要是指這個階段處理方式。
3. 數據結果展現(反饋)
㈢ sqlserver遍歷樹形目錄
使用sqlserver遞推查詢,可以直接查詢出來。
參考資料:http://www.cnblogs.com/xfrog/archive/2010/10/10/1847462.html
WITH lmenu(nav_id,nav_name,nav_parentid,level) as
(
SELECT nav_id,nav_name,nav_parentid,0 level FROM nav nav_parentid=0
UNION ALL
SELECT A.nav_id, A.nav_name,a.nav_parentid, b.level+1 FROM gs_nav A,lmenu b where a.nav_parentid= b.nav_id and nav_id = 10
)
SELECT * from lmenu
具體SQL語句還需要自己驗證一下,上面的自己看著亂寫的。
㈣ sql 查詢樹形數據。
如果樹的層數固定就可以用語句查詢,但效率比較低。例如你說的三層:
select id,v2.name+name from t1 inner join
(select id,v1.name+name as name from t1 inner join
(select id,name from t1 where parentid = 0) v1 on t1.parentid = v1.id) v2 on t1.parentid = v2.id
㈤ 怎麼把Excel中樹形結構的數據導入SQLSERVER
把Excel通過sqlserver導入到資料庫中,會形成一張表,默認你現在Excel存儲就是以樹型存儲,只需用sqlserver查詢顯示出效果。
這是我以前回答的問題,可解決!
參考:http://..com/question/582454004
㈥ SqlServer樹形結構的深度排序怎麼實現
/*
轉一個鄒老大的例子
*/
--測試數據
DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10))
INSERT @t SELECT '001',NULL ,'山東省'
UNION ALL SELECT '002','001','煙台市'
UNION ALL SELECT '003','001','青島市'
UNION ALL SELECT '004','002','招遠市'
UNION ALL SELECT '005',NULL ,'四會市'
UNION ALL SELECT '006','005','清遠市'
UNION ALL SELECT '007','006','小分市'
--深度排序顯示處理
--生成每個節點的編碼累計(相同當單編號法的編碼)
DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000))
DECLARE @Level int
SET @Level=0
INSERT @t_Level SELECT ID,@Level,ID
FROM @t
WHERE PID IS NULL
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID
FROM @t a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
--顯示結果
SELECT a.*
FROM @t a,@t_Level b
WHERE a.ID=b.ID
ORDER BY b.Sort
/*--結果
㈦ sqlserver 存儲二叉樹
看看數據表結構
表:Tree
current_id int (當前節點編號)
father_id int (父節點編號,如果是根節點,-1)
left_id int (左節點編號)
right_id int (右節點編號)
表:Node
Node_id int PK
Node_vaule nvarchar(100)
說明:Tree表是用來存儲樹型結構的,Node表是用來存儲節點內容的
其中Tree表的current_id與Node表的Node_id是一一對應的
至於遍歷的存儲過程是要完成什麼功能呢?
㈧ pl/sql如何現實像sqlserver中的樹形結構目錄界面,就是能查看錶視圖那樣的界面。
可以按如下方法查看:
1、用指定用戶登錄pl/sql。
㈨ jsp怎麼從mysql資料庫把樹形結構展現出來
jsp從mysql資料庫讀取數據,並填充到樹形結構菜單並展現出來的實現方法:
1、引入jquery.treeview.js樹控制項
<script type="text/javascript" src="jquery/easyui/jquery.min.js"></script>
<script type="text/javascript" src="jquery/easyui/jquery.easyui.min.js"></script>
2、jsp頁面中獲取後台mysql數據,並傳到jsp頁面來
<%
// 資料庫的名字
String dbName = "zap";
// 登錄資料庫的用戶名
String username = "sa";
// 登錄資料庫的密碼
String password = "123";
// 資料庫的IP地址,本機可以用 localhost 或者 127.0.0.1
String host = "127.0.0.1";
// 資料庫的埠,一般不會修改,默認為1433
int port = 1433;
String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + dbName + ";user=" + username
+ ";password=" + password;
//
//聲明需要使用的資源
// 資料庫連接,記得用完了一定要關閉
Connection con = null;
// Statement 記得用完了一定要關閉
Statement stmt = null;
// 結果集,記得用完了一定要關閉
ResultSet rs = null;
try {
// 注冊驅動
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 獲得一個資料庫連接
con = DriverManager.getConnection(connectionUrl);
String SQL = "SELECT * from note";
// 創建查詢
stmt = con.createStatement();
// 執行查詢,拿到結果集
rs = stmt.executeQuery(SQL);
while (rs.next()) {
%>
<tr>
3、填充樹形菜單:
{
id : "string" // will be autogenerated if omitted
text : "string" // node text
icon : "string" // string for custom
state : {
opened : boolean // is the node open
disabled : boolean // is the node disabled
selected : boolean // is the node selected
},
children : [] // array of strings or objects
li_attr : {} // attributes for the generated LI node
a_attr : {} // attributes for the generated A node
}
$('#tree').jstree({
'core' : {
'data' : function (obj, cb) {
cb.call(this,
['Root 1', 'Root 2']);
}
}});