易截截图软件、单文件、免安装、纯绿色、仅160KB

一个SQL无限级树型存储过程实现树型结构数据排序

我们在平常的系统开发中常常会遇到像无限级分类这样的树型结构数据,现提供一个可用的数据库存储过程,可以完成树型结构数据的排序。
环境:windows7+Sql Server 2008
说明:下面代码已经转换成Sql server2000的脚本,处理效果如下,看sortname字段结果,代码经过测试。
创建树型表
CREATE TABLE [dbo].[categories](
[category_id] [int] IDENTITY(1,1) NOT NULL,
[parent_id] [int] NULL,
[category_name] [varchar](500) NULL,
CONSTRAINT [PK_categories] PRIMARY KEY CLUSTERED
(
[category_id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO
插入测试数据
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (1, 0, CONVERT(TEXT, N'A'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (2, 0, CONVERT(TEXT, N'B'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (3, 1, CONVERT(TEXT, N'AA'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (4, 3, CONVERT(TEXT, N'AAA'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (5, 2, CONVERT(TEXT, N'BB'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (6, 1, CONVERT(TEXT, N'AA2'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (7, 1, CONVERT(TEXT, N'AA3'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (8, 3, CONVERT(TEXT, N'AAA2'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (9, 4, CONVERT(TEXT, N'AAA3'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (10, 2, CONVERT(TEXT, N'BB2'))
创建存储过程,表中的level为级别深度,通过生成的临时表与分类表关联显示结果。
CREATE PROCEDURE [dbo].[Get_TreeData]
AS
BEGIN
--创建临时表
create table #tmp_table (id int,[level] int)

declare @LevelValue int
set @LevelValue=0
insert #tmp_table select 0,@LevelValue
--将数据写入到临时表
while @@rowcount>0
begin
set @LevelValue=@LevelValue+1


相关文档:

关于SQL SERVER 2005 开发版

由于工作和学习的需要,要在本本上安装SQL SERVER 2005 开发版(本本的操作系统是XP,所以不能安装Enterprise版本,而Express版本的功能又十分有限),去微软的官方网站搜索了一下sql server 2005 developer,找到了一些关于Sql server各种版本的介绍,首先sql server 2005有以下几种版本: EE = SQL Server 2005 Enterprise ......

Sql分页代码

select * from books
where 1=1
and categoryid=29
and title like('%ASP.NET%')
and unitprice>10
order by id
Select top 20 * from books order by id
--m:每页显示行数 n:当前页数
select Top m * from books
where id not in
(Select top m(n-1) id from books order by id)
order by id
select * fro ......

SQL分组排序

今天遇到个有意思的问题,是一个分组排序的问题,不过要求分组和分组间也要排序,如果这个组内有一条数据是最近更新的,那么这整个组都应该排在前面。
下面以Oracle的HR示例Schema中的employees表为例:
语句按部门分组,分组之间的排序是这样的:如果整个分组中有一个员工的hire_date是最新的,那么这个分组就应该排在其 ......

整理了一份项目组前人写过的关于sql编程规范的文档

一、sql书写规范:
  1、sql语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。
   
  2、连接符or、in、and、以及=、<=、>=等前后加上一个空格。
   
  3、对较为复杂的sql语句加上注释,说明算法、功能。
   
&nb ......

几道经典的sql题目

(1)表名:购物信息
购物人      商品名称     数量
A            甲          2
B            乙  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号