【发布时间】:2018-06-11 21:36:57
【问题描述】:
SQL Server 中的查询获取大约 30 条记录,包含 15 列。我想合并它并将其转换为一条记录,其中一条记录有 30*15 = 450 列。但是当我尝试在开始时声明 @SqlText 变量时。
这里是示例代码:
DECLARE @SqlText NVARCHAR(MAX) = ''
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)
当我执行这段代码时,我得到一个错误
消息 208 无效的对象名称“PE”。
其中 PE 是查询的表别名。如何解决此类问题?
【问题讨论】:
标签: sql sql-server merge