我想应该是一些可视化工具(MS SQL Server)来表示SQL查询数据的一些分层样式作为输出结果。
我只是有7个表的分层表链,我必须经常查询1-2的水平,以检查这个链的底部以及一些中间表。
任何线索家伙?
先谢谢你!
PS这将是很酷,如果MS SQLpipe理工作室可以接受下一代插件… 🙂
Brad Schulz在这里有一个相当惊人的proc(usp_DrawTree): http ://bradsruminations.blogspot.com/2010/04/t-sql-tuesday-005-reporting.html
这是他的一个例子输出:
/* ┌───────────┐ │ Anne │ ┌─┤ Dodsworth │ Sales Representative │ │ Ext452 │ │ └───────────┘ ┌──────────┐ │ │ Steven │ │ ┌─┤ Buchanan ├─┤ Sales Manager │ │ Ext3453 │ │ │ └──────────┘ │ │ │ ┌────────┐ │ │ │ Robert │ │ ├─┤ King │ Sales Representative │ │ │ Ext465 │ │ │ └────────┘ │ │ ┌─────────┐ │ │ │ Michael │ │ └─┤ Suyama │ Sales Representative │ │ Ext428 │ │ └─────────┘ │ ┌──────────┐ │ │ Laura │ ├─┤ Callahan │ Inside Sales Coordinator │ │ Ext2344 │ │ └──────────┘ ┌─────────┐ │ │ Andrew │ │ │ Fuller ├─┤ Vice President, Sales │ Ext3457 │ │ └─────────┘ │ │ ┌─────────┐ │ │ Nancy │ ├─┤ Davolio │ Sales Representative │ │ Ext5467 │ │ └─────────┘ │ ┌───────────┐ │ │ Janet │ ├─┤ Leverling │ Sales Representative │ │ Ext3355 │ │ └───────────┘ │ ┌──────────┐ │ │ Margaret │ └─┤ Peacock │ Sales Representative │ Ext5176 │ └──────────┘ */
对于Oracle无论如何(我通过SQL标签来到这里),你可以使用lpad与关联的级别来格式化输出(类似于扩展文件夹视图,更深的级别有更多的缩进):
SELECT LEVEL, LPAD(' ', 2 * LEVEL - 1) || first_name || ' ' || last_name AS employee FROM employee START WITH employee_id = 1 CONNECT BY PRIOR employee_id = manager_id;