SQL FOR XML子句的各种用法

FOR XML子句有四种最基本的模式 
1、AUTO模式:返回数据表为起表名的元素,每一列的值返回为属性;
2、RAW模式:返回数据行为元素,每一列的值作为元素的属性; 
3、PATH模式:通过简单的XPath语法来允许用户自定义嵌套的XML结构、元素、属性值 
4、EXPLICIT模式:通过SELECT语法定义输出XML的结构
第1步:构造测试数据表及填充数据: 
--1.建表语句 
CREATE TABLE [dbo].[Users](
   [UserID] [int] IDENTITY(1,1) NOT NULL, 
   [FirstName] [nvarchar](50) NULL,
   [LastName] [nvarchar](50) NULL
         )  
--2.产生随机数SQL函数

CREATE FUNCTION [GenerateRandomItem] ( @LENGTH INT )
RETURNS NVARCHAR(255)
AS
    BEGIN
	--申明变量
        DECLARE @RandomNumber NVARCHAR(255)
        DECLARE @I SMALLINT
        DECLARE @RandNumber FLOAT
        DECLARE @Position TINYINT
        DECLARE @ExtractedCharacter VARCHAR(1)
        DECLARE @ValidCharacters VARCHAR(255)
        DECLARE @VCLength INT
    --给变量赋值
        SET @ValidCharacters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        SET @VCLength = LEN(@ValidCharacters)
        SET @ExtractedCharacter = ''
        SET @RandNumber = 0
        SET @Position = 0
        SET @RandomNumber = '' 

        SET @I = 1
        WHILE @I < ( @Length + 1 )
            BEGIN
                SET @RandNumber = (SELECT RandNumber FROM [RandNumberView])
                SET @Position = CONVERT(TINYINT, ( ( @VCLength - 1 )* @RandNumber + 1 ))
                SELECT  @ExtractedCharacter = SUBSTRING(@ValidCharacters,@Position, 1)
                SET @I = @I + 1
                SET @RandomNumber = @RandomNumber + @ExtractedCharacter
            END
        RETURN @RandomNumber
    END
GO
CREATE VIEW [RandNumberView]
AS
SELECT  RAND() AS [RandNumber]

--3.添加测试数据

INSERT INTO Users
        (
          FirstName ,
          LastName
        )
SELECT
dbo.GenerateRandomItem(10),
dbo.GenerateRandomItem(10)
GO 10

--4.测试查询

1.AUTO模式:

语句: SELECT UserID, FirstName,LastName FROM users FOR XML AUTO, XMLSCHEMA

说明:加上XMLSCHEMA,输出xml架构,不加则只输出数据。

输出:


2.RAW模式: 

语句:SELECT UserID, FirstName,LastName FROM users FOR XML RAW ('MyUsers')

说明:将元素命名为自定义的名称

输出:

3.PATH模式:

语句: SELECT UserID "@ID", FirstName "Name/FirstName",LastName "Name/LastName" FROM usersFOR XML PATH ('MyUsers')

说明:可以指定xml结构

输出:

4.EXPLICIT模式:(研究中,暂略... ... )


时间: 2024-07-30 10:41:16

SQL FOR XML子句的各种用法的相关文章

时间类型的转换,SQL中CONVERT转化函数的用法

函数|转换 SQL中CONVERT转化函数的用法 格式:CONVERT(data_type,expression[,style]) 说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到. 例子:SELECT CONVERT(varchar(30),getdate(),101) now结果为:now---------------------------------------|09/15

数据库SQL中having和where的用法区别_MsSql

"Where" 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数. "Having"是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数.  聚合函数,SQL基本函数,聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. Transact-SQL编

SQL FOR XML

原文:SQL FOR XML 摘要:sql中的for xml语法为表转化为xml提供了很好的支持,当然使用同样的程序语言也能够达到同样的效果,但是有了for xml将使得这一切更加的方便. 主要内容: Select 的查询结果会作为行集返回,但是你同样可以在sql中指定for xml子句使得查询作为xml来检索.在for xml子句中,可以指定以下模式之一:RAW .AUTO.EXPLICIT和PATH. RAW模式返回行为元素,每一列的值作为元素的属性:AUTO模式返回表名为节点的元素,每一列

sql IN 与not in的用法

sql IN 与not in的用法 IN 操作符允许我们在 WHERE 子句中规定多个值. SQL IN 语法 SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...) 实例 mysql教程> CREATE TABLE Topic(     ->    TopicID     SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,     ->    N

数据库SQL中having和where的用法区别

"Where" 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数. "Having"是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数. 聚合函数,SQL基本函数,聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. Transact-SQL编程

JSTL 访问SQL和XML内容

js|xml|访问     Web应用程序的标志是多个子系统的集成.SQL和XML是在这类子系统之间交换数据的两种最通用的机制.在本文中,Mark Kolb介绍访问JSP页面数据库和XML内容的sql和xml库并对JSTL进行了总结. Web应用程序的模板式(stereotypical)架构分为三层:处理请求的Web服务器.实施业务逻辑的应用程序服务器以及管理永久性数据的数据库.应用程序和数据库层之间的联接通常采用关系数据库中的SQL调用格式.当业务逻辑被写入到Java语言中时,JDBC用于实现

SQL对Xml字段的操作

原文:SQL对Xml字段的操作   T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB). 用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中

mysql sql存储过程流程控制if语句用法

今天我们要来讲一下关于mysql教程 sql存储过程流程控制if语句用法与实例教程吧 if语句 if实现条件判断,满足不同条件执行不同的操作,这个我们只要学编程的都知道if的作用了,下面我们来看看mysql 存储过程中的if是如何使用的吧. if contion then list      [elseif condition then list].........      [else list] end if 这样看上去像asp教程里面的条件,但在elseif时又有些像php教程中的if,但

Sql Server中Substring函数的用法实例解析_MsSql

SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'