簡體   English   中英

MSSQL如何聚合查詢中的行(非表)

[英]MSSQL How to aggregate row from query (not table)

我需要在此查詢中將行聚合為字符串:

WITH requery AS 
    (SELECT  CAST ( Name AS VARCHAR(1000) ) as Folder, f1.ParentFolderID, unt.NetworkName, unt.Model, Marker
    FROM    [Base].[dbo].[Folders] as f1
    JOIN (
        SELECT u.NetworkName, m.Name as Model, u.ParentFolderID, ma.Name as Marker
        FROM Base.dbo.Units as u
            JOIN Base.dbo.Models as m
            ON u.ModelID=m.ModelID
            LEFT JOIN Base.dbo.MarkerLinks as ml
            ON u.ParentFolderID=ml.FolderID
            LEFT JOIN Base.dbo.MarkerS as ma
            ON ml.MarkerID = ma.MarkerID
        WHERE u.NetworkName LIKE 'pcname'   ) as unt ON unt.ParentFolderID = f1.FolderID
    UNION ALL
    SELECT  CAST ( (f.Name + '\' + f2.Folder) AS VARCHAR(1000) ) as Name, f.ParentFolderID, f2.NetworkName, f2.Model, f2.Marker
    FROM    [Base].[dbo].[Folders] f
    JOIN    requery as f2
    ON      f.FolderID = f2.ParentFolderID)
SELECT  NetworkName,Model,Folder,Marker
FROM    requery
WHERE ParentFolderID is NULL

它返回數據為

  1. pcname型號位置user1
  2. pcname型號位置user2
  3. pcname型號位置user3

但是我需要

  1. pcname型號位置user1,user2,user3

我知道OUTER APPLY( 像那里 ),但是我不知道如何在這里使用它。 謝謝。

我#$#$#,只是用來查詢的最后一部分,它的工作!

SELECT  NetworkName,Model,Folder,Marker
FROM    requery
WHERE ParentFolderID is NULL

謝謝4所有人和NiMa獨家)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM