联盟不同的选择声明

时间:2011-04-02 07:44:06

标签: tsql sql-server-2005

我想结合3个不同的语句,问题是我在使用循环,如果在我的查询中:

WHILE some condition

BEGIN
 if(condition 1)
  begin
     select something
  end

 else if(condition 2)
  begin
     select something
  end


 else if(condition 3)
  begin
     select something
  end

END

查询工作正常,但它返回100多个不同的选择结果(不同的表)。如何将这些选择结果合并到一个表中?

1 个答案:

答案 0 :(得分:0)

如果你的意思是在TSQL中,那么你需要一个临时表(#foo)或表变量(@bar)。然后在每一步:

INSERT {name} ({cols})
SELECT {cols}
{etc}

然后做最后的

SELECT {cols}
FROM {name}

table-variable和temporary-table之间的选择很微妙。我更喜欢表变量;但对于大数据,或者如果您需要身份/索引,临时表可能更通用。但如果您不在SPROC内,您必须确保清理临时表。