我想根据groupid属性对查询数据进行分组,下图是我的表格图像
我希望它像树结构一样显示,我可以用这种格式显示数据:
Group1
price
length
width
price
length
width
price
length
width
Group 2
same as above
每组下面的3个元素可以有3个或少于3个或者只有一个或者没有,我想获取数据所以我可以创建文本字段来更新我的数据库中的数据,但这不是我想要的
这是我的查询
select priceid,itemid,groupid,price,length,width from prices
答案 0 :(得分:0)
尝试使用以下概念:
插入数据:
CREATE TABLE some_table (some_data VARCHAR(20), some_other_data VARCHAR(20), groupId VARCHAR(20));
INSERT INTO some_table (some_data, some_other_data, groupId) values ('a', '1', 'id1');
INSERT INTO some_table (some_data, some_other_data, groupId) values ('b', '2', 'id1');
INSERT INTO some_table (some_data, some_other_data, groupId) values ('c', '3', 'id2');
执行查询:
SELECT '{"' + t.groupId + '": [{' + STUFF(
(
SELECT '{ "some_data":"' + td.some_data + '"', ', "some_other_data":' + td.some_other_data + '},'
FROM some_table td
WHERE t.groupId = td.groupId
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '') + ']}'
FROM some_table t
GROUP BY t.groupId
结果:
{“id1”:[{“some_data”:“a”,“some_other_data”:1},{“some_data”:“b”,“some_other_data”:2},]}
{“id2”:[{“some_data”:“c”,“some_other_data”:3},]}
请注意,尾随逗号不应影响数据的有效性。我对SQL Server的体验是有限的,但这应该让你开始朝着可行的方向开始。
小提琴: