• FOR XML PATH应用之用一条SQL语句横向合并结果行


    合并前结果集:

    id FType FName
    1  水果类   苹果
    2  水果类   香蕉
    3  水果类   雪梨
    4  水果类   西瓜
    5  水果类   荔枝
    6  水果类   柚子
    7  交通类   公车
    8  交通类   地铁
    9  交通类   动车
    10 交通类   火车
    11 交通类   汽车
    12 交通类   轮船
    13 动物类   小猫
    14 动物类   小狗
    15 动物类   兔子
    16 动物类   小鸟

    合并后结果集:

    FType   FName
    动物类   小猫、小狗、兔子、小鸟
    交通类   公车、地铁、动车、火车、汽车、轮船
    水果类   苹果、香蕉、雪梨、西瓜、荔枝、柚子

    第一步:建立测试环境

    if exists (select * from sysobjects where id = OBJECT_ID('[tbFruit]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) 
    DROP TABLE [tbFruit]

    CREATE TABLE [tbFruit] (
    id
    int IDENTITY (1, 1) NOT NULL,
    FType
    nvarchar(50) null,
    FName
    nvarchar(50) NULL
    )


    INSERT [tbFruit] (FType,[FName]) VALUES ('水果类', '苹果')
    INSERT [tbFruit] (FType,[FName]) VALUES ( '水果类','香蕉')
    INSERT [tbFruit] (FType,[FName]) VALUES ('水果类', '雪梨')
    INSERT [tbFruit] (FType,[FName]) VALUES ( '水果类','西瓜')
    INSERT [tbFruit] (FType,[FName]) VALUES ('水果类', '荔枝')
    INSERT [tbFruit] (FType,[FName]) VALUES ( '水果类','柚子')

    INSERT [tbFruit] (FType,[FName]) VALUES ('交通类', '公车')
    INSERT [tbFruit] (FType,[FName]) VALUES ( '交通类','地铁')
    INSERT [tbFruit] (FType,[FName]) VALUES ('交通类', '动车')
    INSERT [tbFruit] (FType,[FName]) VALUES ( '交通类','火车')
    INSERT [tbFruit] (FType,[FName]) VALUES ('交通类', '汽车')
    INSERT [tbFruit] (FType,[FName]) VALUES ( '交通类','轮船')

    INSERT [tbFruit] (FType,[FName]) VALUES ('动物类', '小猫')
    INSERT [tbFruit] (FType,[FName]) VALUES ('动物类', '小狗')
    INSERT [tbFruit] (FType,[FName]) VALUES ('动物类', '兔子')
    INSERT [tbFruit] (FType,[FName]) VALUES ('动物类', '小鸟')

    SELECT * FROM [tbFruit]

    第二步:获取结果

    SELECT  B.FType,LEFT(FName,LEN(FName)-1) as FName FROM (
    SELECT distinct FType,
    (
    SELECT FName+'' FROM tbFruit WHERE FType=A.FType FOR XML PATH('')) AS FName
    FROM tbFruit A
    ) B

  • 相关阅读:
    web前端笔记1
    前端与后台交互所需技术
    js的HTML属性操作
    浮动塌陷
    前端与后端的交互(定义接口)
    AjAX(第3章 Ajax的简单例子(Ajax+PHP)
    AjAX(简单概要介绍)
    Bootstrap 学习之js插件(折叠(collapse)插件)
    Net core 项目 EF CodeFist 多重外键约束问题
    对VS 2017中ASP.NET Core项目解决:Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  • 原文地址:https://www.cnblogs.com/maiweibiao/p/2158967.html
Copyright © 2020-2023  润新知