巧用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语句进行限制。。。。。。。。
检索结果:
相关文档:
--创建写文件的存储过程
ALTER proc [dbo].[p_movefile]
@filename varchar(1000),--要操作的文本文件名
@text varchar(8000), --要写入的内容
@obj int
as
begin
declare @err int,
@src varchar(255),
&n ......
1.打开SQL server enterprise mananger "企业管理器"
在你要导出的 SQL数据库上鼠标右键菜单:所有任务-》导出数据
2.回出现一个导出向导窗口。
选择被导出的数据源,为你刚才所选择的数据库,如果发现不对应自行修改。
3.进入导出到目标数据源的选择,这里我们要转成ACCESS的数据库。注意选择数据源类型为&ld ......
第一种方法:使用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 ......
1 当使用group by时,未在group by 部分用到的表列在s e l e c t部分出现时必须使用分组函数。
select last_name, state_cd, sum(sales) from customer group by last_name;
ERROR at line 1:
ORA-00979: not a GROUP BY expression.
state_cd应该使用分组函数,m a x ( )、m i n ( )、s u m ( )、c o u n t ( )或a v g ......