分组字段

时间:2016-05-02 09:23:35

标签: mysql sql-server

我希望使用以下表格在Sql中获得所需的查询

用户表
身份证号码 1维克拉姆
2 vik
3 ram

的productTable
id userid productdetails活动
1 1 XXXX是
2 1 YYYY NO
3 3 AAAA是
4 3 BBBB是
5 1 CCCC是

现在我希望结果像是一样的 由用户分页的用户分组的活动产品

第1页 用户1
    产品1
    产品2
    产品5
用户3
    产品3

我变得像 用户1产品1
用户1产品2
用户1产品5
用户3产品3

但我在单个查询中需要这样的东西 用户1产品1产品2产品5
用户3产品3

任何帮助将不胜感激 谢谢&问候 维克拉姆

2 个答案:

答案 0 :(得分:0)

    SELECT 
      ev.userid
    , Product = STUFF(CAST((
        SELECT [text()] = ', ' + ev2.productdetails
        FROM #ProductTable ev2
        WHERE ev2.userid = ev.userid
        FOR XML PATH(''), TYPE) AS VARCHAR(100)), 1, 2, '')            
FROM ( 
    SELECT DISTINCT userid
    FROM #ProductTable
) ev

输出:

    userid  Product
    1       XXXX, YYYY, CCCC
    3       AAAA, BBBB

String Aggregation in the World of SQL Server

Simulating group_concat MySQL function in SQL Server?

答案 1 :(得分:-1)

SELECT User, ConcatProduct = 
(
    SELECT [text()] = A.Product + ' '
    FROM TableName A
    WHERE A.User = B.User 
    FOR XML PATH('')
)
FROM TableName B
GROUP BY User 

在您获得如下运行上层查询之后的数据。

user1      Product 1
user1      Product 2
user1      Product 5
user3      Product 3

在假定您的第一个列名称User和第二个列名称Product时编写查询。输出如下:

user1       Product 1  Product 2  Product 5
user3       Product 3