巧用SQL中的WITH(树型结构数据的查询)
如果表中存放的数据是树形结构,当知道某一个节点的值时,同时想取得它所有子节点的数据。
表结构:
表中存放的是部门组织结构, BMN_CD部门,SSK_KAISO_LV是阶层,BMN_MKJ部门名称,JOI_KAISO_LV上位阶层,JOI_BMN_CD上位部门。
检索SQL :
WITH Moduals (BMN_CD, SSK_KAISO_LV, BMN_MKJ, BMN_NM_RYKS, SKI_FLG, JOI_KAISO_LV, JOI_BMN_CD) AS (SELECT
T130A.BMN_CD,
T130A.SSK_KAISO_LV,
T130A.BMN_MKJ,
TRIM(T130A.BMN_NM_RYKS) BMN_NM_RYKS,
T130A.SKI_FLG,
T130A.JOI_KAISO_LV,
T130A.JOI_BMN_CD
from
T130 T130A
WHERE
T130A.BMN_CD = 'B00011' AND
UNION ALL
SELECT
T130B.BMN_CD,
T130B.SSK_KAISO_LV,
T130B.BMN_MKJ,
TRIM(T130B.BMN_NM_RYKS) BMN_NM_RYKS,
T130B.SKI_FLG,
T130B.JOI_KAISO_LV,
T130B.JOI_BMN_CD
from
T130 T130B
INNER JOIN Moduals T130C
ON T130B.JOI_KAISO_LV = T130C.SSK_KAISO_LV
AND T130B.JOI_BMN_CD = T130C.BMN_CD
)
SELECT Moduals.BMN_CD,SSK_KAISO_LV, BMN_MKJ, BMN_NM_RYKS, SKI_FLG, JOI_KAISO_LV, JOI_BMN_CD from Moduals
【 WHERE ………… 】
如果对检索结果还有限制的话,可以加WHERE语句进行限制。。。。。。。。
检索结果:
相关文档:
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXC ......
所谓静态SQL指在PL/SQL块中使用的SQL语句在编译时是明确的,执行的是确定对象。而动态SQL是指在PL/SQL块编译时SQL语句是不确定的,如根据用户输入的参数的不同而执行不同的操作。编译程序对动态语句部分不进行处理,只是在程序运行时动态地创建语句、对语句进行语法分析并执行该语句。
Oracle中动态SQL ......
--创建写文件的存储过程
ALTER proc [dbo].[p_movefile]
@filename varchar(1000),--要操作的文本文件名
@text varchar(8000), --要写入的内容
@obj int
as
begin
declare @err int,
@src varchar(255),
&n ......
本文介绍了SQL Server 2005中少数人用到的两条精品新语法,大家看看自己是否知道呢……
1. OUTPUT ... INTO
用于将一条记录从表一移动到表二时非常好用,常见于备份记录的应用
例一:
DELETE [TableUseing]
OUTPUT *
INTO [TableBak]
例二:(用于移动时修 ......
第一种方法:使用NVL函数处理NULL值。
其语法格式是NVL(exp1,exp2)。其中参数exp1和exp2可以使任意数据的类型,但两者数据类型必须匹配。示例:select ename,sal,comm,sal+nvl(comm,0) as salary from emp;
第二种方法:使用NVL2函数处理NULL值。
其语法格式是NVL2(exp1,exp2,exp3)。这是oracle9i新增加的函数。如果exp1 ......