SQL递归查询部门
create function [dbo].[DeptTree](@initDeptCode varchar(10))/*定义函数c_tree,输入参数为初始节点DeptCode*/
returns @t table(DeptCode varchar(10),UpDeptCode varchar(10),lev int)/*定义表t用来存放取出的数据*/
begin
declare @i int/*标志递归级别*/
set @i=1
insert @t select DeptCode,UpDeptCode,@i from vi_dept where DeptCode=@initDeptCode
while @@rowcount<>0
begin
set @i=@i+1
insert @t select a.DeptCode,a.UpDeptCode,@i from vi_dept as a,@t as b
where b.DeptCode=a.UpDeptCode and b.lev=@i-1
end
return
end
select * from dbo.DeptTree('0000')
相关文档:
---返回表达式中指定字符的开始位置
select charindex('c','abcdefg',1)
---两个字符的值之差
select difference('bet','bit')
---字符最左侧指定数目
select left('abcdef',3)
---返回字符数
select len('abcdefg')
--转换为小字符
select lower('ABCDEFG')
--去左空格后
select ltrim(' &nbs ......
有些常见的问题在论坛中不断出现,不妨整理一下。
以下语句是在SQLServer2005上实现的,一些语句无法在SS2000上执行。
有用指数是我根据这个问题的常见程度打的分,仅供参考。实际上,当你遇到了这个问题,这个问题哪怕再少见,解决方案也是非常有用的。
1. 生成若干行记录
有用指数:★★★★★
常见的问题类型:根 ......
UNION指令的目的是将两个SQL语句的结果合并起来。从这个角度来看, 我们会产生这样的感觉,UNION跟JOIN似乎有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT) ......
1. Group By 语句简介:
Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的。恩,以后在命 ......
启动 MS SQL SERVER (2000 -2008都适用):
cmd>net start mssqlserver
启动 非缺省实例:
cmd>net start mssql$[instance name]
注:命令行需要有Administrator权限。
停止SQLSERVER 服务器:
cmd>net stop mssqlserver
cmd>net stop mssql$[instance name] ......