查詢指令搭配FOR子句輸出XML

原创 2007年10月10日 14:59:00

查詢指令搭配FOR子句輸出XML

 基本語法如下:

FOR { XML { RAW | AUTO | EXPLICIT }

[ , XMLDATA ]

[ , ELEMENTS ]

[ , BINARY BASE64 ]

[ , TYPE ]

[ , ROOT[('ROOT_NAME')] ]

}

 *ROOT表示在回傳的XML資料上加上根元素,同時可以指定根元素名稱.
為了方便做比較使用如下基本的查詢語句查出資料:
SELECT TOP(2) [EXE_ID]
      ,[EXE_NAME]
      ,[EXE_PSSWORD]
      ,[EXE_SEX]
      ,[EXE_ADDRESS]
      ,[EXE_NUMBER]
     
    FROM [EXE].[dbo].[EXE_UserInfo]

執行結果如下:
______________________________________________________________________________
     --------------------------------------------------------------
EXE_ID      EXE_NAME               EXE_PSSWORD                 EXE_SEX        EXE_ADDRESS           EXE_NUMBER                  
10002      LiuXiaoXiangaa           password                                    Gril             蘆洲市           097544568784013461   
10003      WanghaiTao                 password                                    Boy             山東省           450903198806013461

下面演示查詢指令搭配FOR子句輸出XML

SELECT TOP(2) [EXE_ID]
      ,[EXE_NAME]
      ,[EXE_PSSWORD]
      ,[EXE_SEX]
      ,[EXE_ADDRESS]
      ,[EXE_NUMBER]
     
    FROM [EXE].[dbo].[EXE_UserInfo]
FOR XML RAW('USER'), ELEMENTS,ROOT('UserS') 

執行結果如下:
______________________________________________________________________________
     --------------------------------------------------------------
<UserS>
  <USER>
    <EXE_ID>10002</EXE_ID>
    <EXE_NAME>LiuXiaoXiangaa</EXE_NAME>
    <EXE_PSSWORD>password</EXE_PSSWORD>
    <EXE_SEX>Gril</EXE_SEX>
    <EXE_ADDRESS>蘆洲市</EXE_ADDRESS>
    <EXE_NUMBER>097544568784013461</EXE_NUMBER>
  </USER>
  <USER>
    <EXE_ID>10003</EXE_ID>
    <EXE_NAME>WanghaiTao</EXE_NAME>
    <EXE_PSSWORD>password</EXE_PSSWORD>
    <EXE_SEX>Boy</EXE_SEX>
    <EXE_ADDRESS>山東省</EXE_ADDRESS>
    <EXE_NUMBER>450903198806013461</EXE_NUMBER>
  </USER>
</UserS>
 
 說明:
     RAW('USER')表示將資料集輸出成以USER為資料列元素名稱.
     ROOT('UserS')表示加入根元素形成完整的XML文件
 

除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效

SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后...
  • wrm_nancy
  • wrm_nancy
  • 2013年12月06日 17:05
  • 12890

除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效

之前遇到过一次在视图中使用order by 当初找到了解决方案,今天又在子查询中遇到了,然后还是百度,今天看到这边文章,理解下为什么会出现这样的现象,也懂了原理,以后应该会深刻了    转自 htt...
  • jxqiaole
  • jxqiaole
  • 2015年07月30日 10:47
  • 2431

YII2.0 常用查询语句

本文主要说说一些基本的查询语句:1.首先理解以下三个的返回类型:find() 结果是是一个ActiveQuery()对象 hasOne() 与 hasMany() 返回的是 yii\db\Active...
  • cjqh_hao
  • cjqh_hao
  • 2015年12月19日 09:06
  • 1412

针对sql错误:“除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效”的原理与解决

执行sql语句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by da...
  • danielljc94118
  • danielljc94118
  • 2016年07月27日 16:49
  • 821

sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询

http://blog.csdn.net/a497785609/article/details/23168855 执行sql语句: select * from ( s...
  • zunguitiancheng
  • zunguitiancheng
  • 2015年07月29日 17:11
  • 767

除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效

SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后...
  • wrm_nancy
  • wrm_nancy
  • 2013年12月06日 17:05
  • 12890

SQL FOR XML子句的各种用法

FOR XML子句有四种最基本的模式  1、AUTO模式:返回数据表为起表名的元素,每一列的值返回为属性; 2、RAW模式:返回数据行为元素,每一列的值作为元素的属性;  3、PATH模式:通过...
  • a497785609
  • a497785609
  • 2011年12月19日 15:58
  • 5733

TYPE Directive in FOR XML Queries(FOR XML查询中的TYPE指令)

SQL Server support for the xml (Transact-SQL) enables you to optionally request that the result of a...
  • jzt_designer
  • jzt_designer
  • 2016年02月19日 08:44
  • 265

OpenMP Tutorial学习笔记(10)OpenMP指令之数据范围属性的子句

OpenMP Tutorial:https://computing.llnl.gov/tutorials/openMP/#Clauses (1)Summary: 在OpenMP的指令中,有...
  • gengshenghong
  • gengshenghong
  • 2011年11月14日 21:35
  • 1278

Oracle start with.connect by prior子句实现递归查询

  • 2013年12月20日 09:12
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:查詢指令搭配FOR子句輸出XML
举报原因:
原因补充:

(最多只允许输入30个字)