我有一张桌子:
EntityID   AttributeID  OptionText
5016       20           Paintings
5044       18           Female
5060       48           M
5060       48           F
5060       49           Apple
5060       49           Banana
5060       49           Cat
Run Code Online (Sandbox Code Playgroud)
我想创建一个将显示的视图:
5016    20   Paintings
5044    18   Female
5060    48   M,F
5060    49   Apple, Banana, Cat
Run Code Online (Sandbox Code Playgroud)
均值每个实体的属性值应以逗号分隔显示.
选项的数量可以变化.
任何帮助表示赞赏!
gbn*_*gbn 11
对于每对EntityID, AttributeID使用XML路径技巧来生成CSV
 SELECT
    M.EntityID, M.AttributeID,
    SUBSTRING(CAST(foo.bar AS varchar(8000)), 2, 7999) AS Options
FROM
    (
    SELECT DISTINCT EntityID, AttributeID
    FROM MyTable
    ) M
    CROSS APPLY
    (
    SELECT
        ',' + OptionText
    FROM
        MyTable M2
    WHERE
        M.EntityID = M2.EntityID AND M.AttributeID= M2.AttributeID
    FOR XML PATH ('')
    ) foo(bar)
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5413 次  |  
        
|   最近记录:  |