SQL Server中的查询获取大约30个包含15列的记录。我想合并它并将其转换为单个记录中 30 * 15 = 450列的一条记录。
以下是示例代码:
DECLARE @SqlText NVARCHAR(MAX) = 'select * from ((SELECT ''abc'' AS ID,
SUBSTRING(col1,0,10) ID_Mark,
CASE
WHEN (UPPER(SUBSTRING(REPLACE(col2, ''0123456789'', NULL ), 0, 2 ))=''E-'')
THEN SUBSTRING(REPLACE(col2, ''0123456789'', NULL ), 3, 4 ) .......
group by ID, ID_Mark, col1, col2, .....)) PE'
SELECT @SqlText = @SqlText + ' INNER JOIN PE'+ CONVERT(VARCHAR, ID) +'.ID_Mark = ' + CONVERT(VARCHAR, ID_Mark)
FROM PE
order by ID_Mark
SET @SqlText = @SqlText
EXEC (@SqlText)
以下是样本数据 -
ID col1 col2 .......
1001 STEVE CAJ .......
1002 SHAUN REZ .......
1003 HASH FAS .......
我想将所有这些数据合并到一个记录中,如下所示 -
1_ID 1_col1 1_col2 .. 2_ID 2_col1 2_col2 .. 3_ID 3_col1 3_col2 ...
1001 STEVE CAJ .. 1002 SHAUN REZ .. 1003 HASH FAS ...
当我执行此代码时,出现错误
消息208 无效的对象名称' PE'。
其中PE是查询的表别名。如何解决此类问题?