Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
Sql server 迭代选择结果_Sql Server - Fatal编程技术网

Sql server 迭代选择结果

Sql server 迭代选择结果,sql-server,Sql Server,我想在SQLServer中用select语句创建一个列表,然后使用此select语句的结果创建一组select,例如,如果我有3个从第一次select返回的值,我想运行一个While循环,该循环将运行3次,并在每个交互上选择值 下面是我尝试做的一个例子: 我有一个选择声明: Select ID From T_1 Where T_1.somefield=1 返回的语句应为: |1| |2| |4| 而3由于我的位置条件而不显示 我想重复一下我的结果 set @myCount=select co

我想在SQLServer中用select语句创建一个列表,然后使用此select语句的结果创建一组select,例如,如果我有3个从第一次select返回的值,我想运行一个While循环,该循环将运行3次,并在每个交互上选择值

下面是我尝试做的一个例子:

我有一个选择声明:

Select ID
From T_1
Where T_1.somefield=1
返回的语句应为:

|1|
|2|
|4|
而3由于我的位置条件而不显示

我想重复一下我的结果

set @myCount=select count(id) from -my result-
set @indexFlag=0;

while (@indexFlag<@myCount)
Begin


Select *
From T_2
Where T_2.field=...(1 - 1st loop, 2- 2nd loop, 4- 3rd loop)


@indexFlag=@indexFlag+1
结束

我不知道如何实现它,SQLSERVER是否支持某种列表?
任何帮助都将不胜感激。

我认为您应该为此使用联接

select t_2.* from t_1 left join t_2 
on t_1.ID = t_2.ID
where t_1.some_field = 1

这将返回一个表本身所需的所有行。然后在代码中处理此表以筛选所需的行。

为什么不能使用纯SQL进行此操作?在我看来,您可以从T_2中选择*,其中T_2.字段位于从T_1中选择*。。。分组依据T1.I应用程序经理要求。。我还想进一步研究SQLSERVER:您可能需要游标,但如果您想了解SQLSERVER的更多信息,就不应该使用游标。。。。了解数据库如何工作。RDBMS是一种基于集合的操作。你不会循环。学习如何使用JOIN。我知道我可以使用它,但我的需要需要分别处理每条记录