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 
  • 相关阅读:
    GUI编程
    网络编程
    线程池详解_3
    多线程详解_2
    注解和反射_1
    多线程详解_1
    javaEE简要总结
    MarkDown使用教程简单介绍
    com.sun.xxx.utils不存在问题的解决
    解决npm install安装慢的问题
  • 原文地址:https://www.cnblogs.com/feihusurfer/p/7874508.html
Copyright © 2011-2022 走看看