我正在使用SQL Server 2014和SSIS,我需要执行以下操作:
我有一个包含此信息的表:
Location |Location Type |Region | World Region
1 | A | EU | EU
36 | V | AM | AM
24 | S | AS | AS
26 | G | AJ | AJ
我需要获得下一个结果
Locations
'1,A,EU,EU'
'36,V,AM,AM'
'24,S,AS,AS'
'26,G,AJ,AJ'
有人知道另类吗?我将保存保存到表名的变量中,因此每个表都有不同的列数,我需要在8个表中执行此操作。
答案 0 :(得分:0)
您可能希望在字段之间使用带有逗号的CONCAT
函数。在您的示例中,您需要以下内容:
SELECT CONCAT(Location, ',', LocationType, ',', Region, ',', WorldRegion) AS Locations FROM ...
答案 1 :(得分:0)
您可以使用动态查询
DECLARE @tblName VARCHAR(20) = 'your_tbl_name'
DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX)
SELECT @columns = COALESCE(@columns, '') + '[' + COLUMN_NAME + '], '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @tblName
SET @sql = 'SELECT CONCAT(' + STUFF(@columns, LEN(@columns), 1, '') + ') FROM ' + @tblName
EXEC(@sql)