【T-SQL系列】FOR XML PATH 语句的应用

简介: 原文:【T-SQL系列】FOR XML PATH 语句的应用 DECLARE @TempTable TABLE ( UserID INT , UserName NVARCHAR(50) ); INSERT INTO @TempTable ...
原文: 【T-SQL系列】FOR XML PATH 语句的应用

DECLARE @TempTable TABLE
    (
      UserID INT ,
      UserName NVARCHAR(50)
    );
INSERT  INTO @TempTable
        ( UserID, UserName )
VALUES  ( 1, 'a' )
INSERT  INTO @TempTable
        ( UserID, UserName )
VALUES  ( 2, 'b' )
  
SELECT  UserID ,
        UserName
FROM    @TempTable
FOR     XML PATH

--其实PATH() 括号内的参数是控制节点名称的
SELECT  UserID ,
        UserName
FROM    @TempTable
FOR     XML PATH('lzy')

--这样就不显示上级节点了
SELECT  UserID ,
        UserName
FROM    @TempTable
FOR     XML PATH('')

--大家可以根据自己需要的格式进行组合
SELECT  CAST(UserID AS VARCHAR) + '' ,
        UserName + ''
FROM    @TempTable
FOR     XML PATH('')

SELECT  CAST(UserID AS VARCHAR) + ',' ,
        UserName + '' ,
        ';'
FROM    @TempTable
FOR     XML PATH('')

SELECT  '{' + CAST(UserID AS VARCHAR) + ',' ,
        '"' + UserName + '"' ,
        '}'
FROM    @TempTable
FOR     XML PATH('')

对应结果集:

下面是一个数据统计的应用,希望大家可以通过下面的实例想到更多的应用

DECLARE @T1 TABLE
    (
      UserID INT ,
      UserName NVARCHAR(50) ,
      CityName NVARCHAR(50)
    );
INSERT  INTO @T1
        ( UserID, UserName, CityName )
VALUES  ( 1, 'a', '上海' )
INSERT  INTO @T1
        ( UserID, UserName, CityName )
VALUES  ( 2, 'b', '北京' )
INSERT  INTO @T1
        ( UserID, UserName, CityName )
VALUES  ( 3, 'c', '上海' )
INSERT  INTO @T1
        ( UserID, UserName, CityName )
VALUES  ( 4, 'd', '北京' )
INSERT  INTO @T1
        ( UserID, UserName, CityName )
VALUES  ( 5, 'e', '上海' )

SELECT  *
FROM    @T1

SELECT  CityName ,
        ( SELECT    UserName + ','
          FROM      @T1
          WHERE     CityName = A.CityName
        FOR
          XML PATH('')
        ) AS UserList
FROM    @T1 A
GROUP BY CityName

--生成结果(每个城市的用户名)

SELECT  B.CityName ,
        LEFT(UserList, LEN(UserList) - 1)
FROM    ( SELECT    CityName ,
                    ( SELECT    UserName + ','
                      FROM      @T1
                      WHERE     CityName = A.CityName
                    FOR
                      XML PATH('')
                    ) AS UserList
          FROM      @T1 A
          GROUP BY  CityName
        ) B

对应结果集:

目录
相关文章
|
2月前
|
SQL 存储 测试技术
SQL在构建系统中的应用:关键步骤与技巧
在构建基于数据库的应用系统时,SQL(Structured Query Language)作为与数据库交互的核心语言,扮演着至关重要的角色
|
1月前
|
SQL 数据库
如何应用SQL约束条件?
【10月更文挑战第28天】如何应用SQL约束条件?
58 11
|
2月前
|
XML 存储 数据库
XML在数据库中有哪些应用?
【10月更文挑战第17天】XML在数据库中有哪些应用?
51 2
|
2月前
|
SQL Oracle 关系型数据库
SQL语言的主要标准及其应用技巧
SQL(Structured Query Language)是数据库领域的标准语言,广泛应用于各种数据库管理系统(DBMS)中,如MySQL、Oracle、SQL Server等
|
1月前
|
SQL 监控 安全
员工上网行为监控软件:SQL 在数据查询监控中的应用解析
在数字化办公环境中,员工上网行为监控软件对企业网络安全和管理至关重要。通过 SQL 查询和分析数据库中的数据,企业可以精准了解员工的上网行为,包括基础查询、复杂条件查询、数据统计与分析等,从而提高网络管理和安全防护的效率。
29 0
|
2月前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
2月前
|
SQL 存储 数据库
SQL在构建系统中的应用:关键要素与编写技巧
在构建基于数据库的系统时,SQL(Structured Query Language)扮演着至关重要的角色
|
2月前
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
102 5
|
2月前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
77 3
|
2月前
|
SQL
sql树型应用总结
sql树型应用总结
32 2