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

原文地址:https://www.cnblogs.com/since-1995/p/12681571.html