SQL 巩固练习(用到了前几天几个知识点)

WBOY
发布: 2016-06-07 17:44:08
原创
914 人浏览过

SQL 巩固练习用到了前几天几个知识点 在查看SQL Server 2005的帮助文档中的cross apply 运算符时发现了一个个人感觉用到的知识点儿比较多,比较经典的例子。在此写下来,也是为了巩固一下前几天的知识点。 先建表一员工表(Employees): CREATE TABLE Emplo

SQL 巩固练习——用到了前几天几个知识点

  在查看SQL Server 2005的帮助文档中的cross apply 运算符时发现了一个个人感觉用到的知识点儿比较多,免备案空间,比较经典的例子。在此写下来,香港空间,也是为了巩固一下前几天的知识点。

先建表一员工表(Employees):

CREATE TABLE Employees ( empid , mgrid int NULL, empname varchar(25) NOT NULL, salary , CONSTRAINT PK_Employees PRIMARY KEY(empid), )

向Employees表中插入数据:

Employees , $10000.00) , $5000.00) , $5000.00) , $5000.00) , $2500.00) , $2500.00) , $2500.00) , $2500.00) , $2500.00) , $2500.00) , $2000.00) , $2000.00) , $2000.00) , $1500.00)

查询向Employees表插入的全部数据SQL语句:

Employees

结果如图:

再建表二部门表(Departments):

CREATE TABLE Departments ( deptid , deptname VARCHAR(25) NOT NULL, deptmgrid Employees )

Departments表插入数据:

, 2) , 7) , 8) , 9) , 4) , NULL)

查询向Departments表插入的全部数据SQL语句:

Departments

结果如图:

下面的表值函数使用雇员 ID 作为参数,并返回该雇员及他/她的所有下属(用到了前面所学的CTE公共表表达式 with...as... 的递归):

) ( empid , empname VARCHAR(25) NOT NULL, mgrid INT NULL, lvl ) Employees_Subtree(empid, empname, mgrid, lvl) AS ( empid, empname, mgrid, 0 FROM employees e.empid, e.empname, e.mgrid, es.lvlemployees AS e JOIN employees_subtree AS es ON e.mgrid = es.empid ) Employees_Subtree

返回每个部门经理的所有级别的全部下属,使用下面的SQL语句(用到了apply的cross apply):

Departments AS D CROSS APPLY fn_getsubtree(D.deptmgrid) AS ST

结果如图:

,虚拟主机
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!