Sql 将查询作为行中的字符串进行求值

Sql 将查询作为行中的字符串进行求值,sql,amazon-redshift,Sql,Amazon Redshift,假设我有一个表,其中每一行都是字符串表示形式的查询 '从foo1中选择* '从foo2中选择* '从foo3中选择* 是否可以一次计算所有查询?更改下面代码中的QueryString和TableName以反映您的表信息。没有什么需要改变的 DECLARE @Query varchar(50); DECLARE query_cursor CURSOR FOR SELECT QueryString FROM TableName; OPEN query_cursor; FETCH NEXT

假设我有一个表,其中每一行都是字符串表示形式的查询

'从foo1中选择*

'从foo2中选择*

'从foo3中选择*


是否可以一次计算所有查询?

更改下面代码中的QueryString和TableName以反映您的表信息。没有什么需要改变的

DECLARE @Query varchar(50);  

DECLARE query_cursor CURSOR FOR
SELECT QueryString FROM TableName;

OPEN query_cursor;

FETCH NEXT FROM query_cursor
INTO @Query;

WHILE @@FETCH_STATUS = 0
BEGIN
   EXEC (@Query);
   FETCH NEXT FROM query_cursor
   INTO @Query;
END

CLOSE query_cursor;
DEALLOCATE query_cursor;

更改下面代码中的QueryString和TableName以反映您的表信息。没有什么需要改变的

DECLARE @Query varchar(50);  

DECLARE query_cursor CURSOR FOR
SELECT QueryString FROM TableName;

OPEN query_cursor;

FETCH NEXT FROM query_cursor
INTO @Query;

WHILE @@FETCH_STATUS = 0
BEGIN
   EXEC (@Query);
   FETCH NEXT FROM query_cursor
   INTO @Query;
END

CLOSE query_cursor;
DEALLOCATE query_cursor;

我可以问一下为什么在这里使用游标吗?您需要循环表中的每一行并分别执行它们。使用光标将允许您选择表中的下一行并执行所需的功能。@MichaelDeluca希望得到某种优雅的东西,但它可以完成任务。问题是关于redshiftca。我可以问一下为什么在这里使用光标吗?您需要循环表中的每一行并分别执行它们。使用光标将允许您选择表中的下一行并执行所需的功能。@MichaelDeluca希望得到某种优雅的东西,但它可以完成任务问题是关于红移的这是红移问题吗?@denismo我在使用红移毕竟您无法在红移中计算动态查询。你必须在外面构建一个大型查询。这是红移问题吗?@denismo我用的是红移毕竟你不能在红移中计算动态查询。您必须在外部构造一个大型查询。