我有一个表,其中包含一个外部表名,在这里我可以找到所需的值(该表没有任何PK / FK,我无法更改此值)。 问题是,是否可以在SELECT语句内执行动态SQL查询?
类似
SELECT Col1,
Col2,
'SELECT TOP 1 Col from ' + Col3,
FROM Table1
答案 0 :(得分:0)
我不确定这是否准确地是您要执行的操作,但是如果您要连接的值将是相同的(看起来像),这可能是一个解决方案例如示例中的H9
):
AE_C
这将导致:
0
您还可以制作一个临时表或进行自我联接。我认为这里有一些解决方案可以满足您的需求。祝好运! :)
答案 1 :(得分:0)
不是直接的,但是您可以考虑将Table1的值形式选择到临时表中,然后使用动态UPDATE语句添加col3指定的值形式表。不是很优雅,也没有尝试过使用DB,但是类似的东西可能会带您解决问题
SELECT Col1,
Col2,
Col3
TopOfCol3Table = ''
INTO #TempTable1
FROM Table1
DECLARE @Sql VARCHAR(1024) = '
UPDATE #TempTable1
SET TopOfCol3Table = (SELECT TOP 1 Col FROM ' + Col3 ')'
EXECUTE sp_executesql @Sql
答案 2 :(得分:-1)
您可以通过调用以TSQL命令文本为参数的存储过程 sp_executesql 来执行TSQL命令。
以下是一些相关文档:sp_executesql (Transact-SQL)
对结果的处理是实现的全部内容。