zoukankan      html  css  js  c++  java
  • sql多行合并成一行用逗号隔开,多表联合查询中子查询取名可重复

    简单版的

    SELECT a.CreateBy,
    Name =stuff(
    (
    select ','+Name FROM SG_Client WHERE CreateBy = a.CreateBy for xml path(''))
    ,1,1,'')
    FROM SG_Client a 
    group by a.CreateBy

    //连表查询

    SELECT a.ContractID, LocationName =
    stuff( 
    ( select ',' + LocationName FROM(select L.Name as LocationName,b.ContractID from SG_ContractBunk B inner join MALL_Location L 
    on B.LocationID = L.LocationID ) tb where tb.ContractID=a.ContractID for xml path('')) ,1,1,'') 
    FROM(select L.Name as LocationName,b.ContractID from SG_ContractBunk B inner join MALL_Location L on B.LocationID = L.LocationID
    ) a group by a.ContractID
    select C.ContractID,ContractNO,ContractNO2,ContractName,State,CL.Name as ClientName,B.Name as BrandName,l.LocationName from SG_Contract C WITH (NOLOCK) 
    inner join SG_Client CL WITH (NOLOCK) on C.ClientID=CL.ClientID inner join SG_Brand B WITH (NOLOCK) on c.BrandID=B.BrandID 
    inner join (SELECT a.ContractID, LocationName =
    stuff( 
    ( select ',' + LocationName FROM(select L.Name as LocationName,b.ContractID from SG_ContractBunk B inner join MALL_Location L 
    on B.LocationID = L.LocationID ) tb where tb.ContractID=a.ContractID for xml path('')) ,1,1,'') 
    FROM(select L.Name as LocationName,b.ContractID from SG_ContractBunk B inner join MALL_Location L on B.LocationID = L.LocationID
    ) a group by a.ContractID) L ON C.ContractID=L.ContractID
  • 相关阅读:
    IOS开发环境
    IOS开发环境搭建
    Eclipse简明使用教程(java集成开发环境)
    分布式相关
    成为架构师之路认识分布式架构
    什么是分布式系统,如何学习分布式系统
    分布式定义
    VIM命令详解
    vim常用命令
    vi/vim 命令使用详解
  • 原文地址:https://www.cnblogs.com/heyiping/p/9402833.html
Copyright © 2011-2022 走看看