首页 > 代码库 > 【T-SQL系列】FOR XML PATH 语句的应用
【T-SQL系列】FOR XML PATH 语句的应用
原文:【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 , UserNameFROM @TempTableFOR XML PATH--其实PATH() 括号内的参数是控制节点名称的SELECT UserID , UserNameFROM @TempTableFOR XML PATH(‘lzy‘)--这样就不显示上级节点了SELECT UserID , UserNameFROM @TempTableFOR XML PATH(‘‘)--大家可以根据自己需要的格式进行组合SELECT CAST(UserID AS VARCHAR) + ‘‘ , UserName + ‘‘FROM @TempTableFOR XML PATH(‘‘)SELECT CAST(UserID AS VARCHAR) + ‘,‘ , UserName + ‘‘ , ‘;‘FROM @TempTableFOR XML PATH(‘‘)SELECT ‘{‘ + CAST(UserID AS VARCHAR) + ‘,‘ , ‘"‘ + UserName + ‘"‘ , ‘}‘FROM @TempTableFOR 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 @T1SELECT CityName , ( SELECT UserName + ‘,‘ FROM @T1 WHERE CityName = A.CityName FOR XML PATH(‘‘) ) AS UserListFROM @T1 AGROUP 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
对应结果集:
【T-SQL系列】FOR XML PATH 语句的应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。