Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 联合不同的select语句_Tsql_Sql Server 2005 - Fatal编程技术网

Tsql 联合不同的select语句

Tsql 联合不同的select语句,tsql,sql-server-2005,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 查询工作正常,但它返回1

我想合并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多个不同的选择结果(不同的表)。如何将这些select结果合并到一个表中?

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

INSERT {name} ({cols})
SELECT {cols}
{etc}
然后做一个期末考试

SELECT {cols}
FROM {name}

表变量和临时表之间的选择很微妙。我更喜欢表格变量;但是对于大数据,或者如果需要标识/索引,临时表可能更通用。但是,如果您不在存储过程中,则必须确保清理临时表。

使用表变量将这些结果中的每一个选择到该表中,然后在最后一次性选择所有结果。如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击“代码示例”按钮(
{}
)在编辑器工具栏上很好地格式化和语法突出显示它!