宠辱不惊,闲看庭前花开花落
去留无意,漫随天外云卷云舒


数据库运维农民工,有兴趣可以关注我的
微信公众号:『SQL数据库运维』

SQL SERVER数据库内 FOR XML PATH 函数用法

把自己点点滴滴的学习记录下来!!!!

一.FOR XML PATH 简单介绍

那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(TBJTXXCE)用来存放就诊患者信息,表结构如下:

 

 

 接下来我们来看应用FOR XML PATH的查询结果语句如下:

SELECT * FROM TBJTXXCE  FOR XML PATH

 

 由此可见FOR XML PATH 可以将查询结果根据行输出成XML各式!

      那么,如何改变XML行节点的名称呢?代码如下:   

 SELECT * FROM TBJTXXCE  FOR XML PATH('xiyouji')

 

 以上为FOR XML PATH的基本语法操作,现在在具体的实际应用中的体现,举例如下:

现我们想知道“猪八戒”就诊了哪些科室,并分别在这些科室的挂号种类是什么,脚本如下:

SELECT B.CXM,CKSMC,LEFT(CGHZL,LEN(CGHZL)-1) as CGHZL FROM (
SELECT CXM,CKSMC,
(SELECT CGHZL+',' FROM TBJTXXCE
WHERE CKSMC=A.CKSMC
FOR XML PATH('')) AS CGHZL
FROM TBJTXXCE A
GROUP BY CXM,CKSMC
) B

脚本运行结果:

 

外层 SELECT 语句LEFT(CGHZL,LEN(CGHZL)-1) as CGHZL去掉CGHZL后的逗号,

内层语句执行结果:

SELECT CXM,CKSMC,
(SELECT CGHZL+',' FROM TBJTXXCE
WHERE CKSMC=A.CKSMC
FOR XML PATH('')) AS CGHZL
FROM TBJTXXCE A
GROUP BY CXM,CKSMC

 

posted @ 2020-04-11 18:48  蓝涩街灯  阅读(395)  评论(1编辑  收藏  举报