我有一个表(不是我设计的),它有 20 个不同命名的列。也就是说,根据您查看的记录类型,列的适用名称可能会发生变化。
可能的列名存储在另一个表中,我可以很容易地查询。
因此,我真正要查找的查询是这样的:
SELECT Col1 AS (SELECT ColName FROM Names WHERE ColNum = 1 and Type = @Type),
Col2 AS (SELECT ColName FROM Names WHERE ColNum = 2 and Type = @Type)
FROM Tbl1
WHERE Type = @Type
Run Code Online (Sandbox Code Playgroud)
显然这行不通,那么我怎样才能得到类似的结果呢?
'
我已经尝试构建一个查询字符串并对其进行
事实证明,我使用了不正确的查询来构建动态 SQL,因此构建了一个空字符串。SQL Server 肯定正确执行了空字符串。EXECUTEing,但这只是返回“命令成功完成”并且似乎没有返回行集。
请注意,我需要这样做的原因,而不是简单地对列名进行硬编码,是因为列名是用户可配置的。