我的表格数据类似于
DECLARE @Tab TABLE(Name VARCHAR(10), VAL INT)
INSERT INTO @Tab
VALUES ('A', 25), ('B', 30), ('C', 236), ('D', 217), ('E', 19)
SELECT *
FROM @Tab
我想将结果显示为:
Total:527 (A:25,B:30,C:236,D:217,E:19)
答案 0 :(得分:1)
这是一个使用FOR XML
的子查询的简单方法:
SELECT 'Total:' + CAST(SUM(VAL) as varchar(10)) +' ('+
STUFF(
(
SELECT ',' + Name +':'+ CAST(VAL as varchar(10))
FROM @Tab
FOR XML PATH('')
), 1, 1, '') +')'
as result
FROM @Tab
结果:
result
Total:527 (A:25,B:30,C:236,D:217,E:19)
答案 1 :(得分:0)
SELECT SUM(VAL) FROM @tab
答案 2 :(得分:0)
一种方法是使用FOR XML
子查询:
DECLARE @Tab TABLE(Name VARCHAR(10), VAL INT);
INSERT INTO @Tab VALUES('A',25),('B',30),('C',236),('D',217),('E',19);
SELECT 'Total:'
+ CAST(SUM(VAL) AS varchar(10))
+ ' ('
+ STUFF((SELECT ',' + Name + ':' + CAST(VAL AS varchar(10))
FROM @Tab
ORDER BY Name
FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)'), 1, 1, '')
+ ' )'
FROM @Tab;