zoukankan      html  css  js  c++  java
  • xml path 列转行实例

    SQL Server2005提供了一个新查询语法——For XML PATH(''),这个语法有什么用呢?想象一下这样一个查询需求:有两个表,班级表A、学生表B,要查询一个班级里有哪些学生?针对这个需求,方法有很多。举例一下两种:1、Join连接;2、For XML PATH('').

    为了大家方便体验效果,附上创建数据库的代码:

    --班级表
    create table T_Class
    (
    CNo int primary key not null identity,--班级编号
    CName nvarchar(50) not null           --班级名称         
    )
    go
    --学生表
    create table T_Student
    (
    SNo int primary key not null identity,--学生编号
    Name nvarchar(50) not null    ,       --学生姓名
    CNo int not null                      --所属班级
    )
    go

    查询语句的写法:

    SELECT CNo,
        CName,
        (SELECT Name+',' FROM dbo.T_Student s WHERE s.CNo=c.CNo For XML Path('')) AS Student  --单独一列 ,所有学生在同一列中
    FROM T_Class c

     运行效果:

    应用实例

    SELECT produceOrderCode,
                        STUFF((SELECT ',' + processName FROM dbo.ws_CraftRouteDetail
                        LEFT JOIN dbo.Process ON dbo.ws_CraftRouteDetail.processCode = dbo.Process.processCode
                        WHERE dbo.ws_ProduceOrder.produceOrderCode=dbo.ws_CraftRouteDetail.produceOrderCode
                        FOR XML PATH('')),1,1,'') AS processNameRemark
                        FROM dbo.ws_ProduceOrder 
  • 相关阅读:
    【数论】 快速幂
    【时间复杂度】你还在担心时间复杂度太高吗?
    【数据结构】 最小生成树(三)——prim算法
    【数据结构】 最小生成树(二)——kruskal算法
    node.js初识11
    node.js初识10
    node.js初识09
    node.js初识08
    node.js初识07
    node.js初识06
  • 原文地址:https://www.cnblogs.com/feihusurfer/p/7874508.html
Copyright © 2011-2022 走看看