我正在使用SQL Server 2016.假设我在数据集中有sales1,sales2,..,sales100列,以及其他一些列,比如name。我想写一个像
这样的SQL查询SELECT name, SUM(sales1), SUM(sales2),..., SUM(sales100)
FROM dataset
GROUP BY name
但我不相信这是有效的SQL语法..有没有这样的简写?
答案 0 :(得分:1)
没有简写,但SSMS提供了一种简单的方法。
From Object Explorer expand your table and drag the column folder to a query window.
It will give you a csv list of columns.
哦,但那不是你想要的!
Replace ',' with '), SUM(' and with minor tweaking you can have the desired string.
或者你可以试试这个:
DECLARE @SQL VARCHAR(MAX) = ''
SELECT @SQL += 'SUM(' + column_name + '), '
FROM information_Schema.COLUMNS
WHERE table_name = 'mytable'
AND column_name LIKE 'sales%'
ORDER BY ORDINAL_POSITION
SELECT @SQL