Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/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
Sql server 使用条件条件更改行数,如操作_Sql Server_Variables_Data Partitioning - Fatal编程技术网

Sql server 使用条件条件更改行数,如操作

Sql server 使用条件条件更改行数,如操作,sql-server,variables,data-partitioning,Sql Server,Variables,Data Partitioning,使用SQL server 2012。我使用变量来确定在整个数据集中满足各种标准的次数。我想取其中的一半,先做一件事,然后再做另一半事。当我只包含那些满足条件的实例时,它可以正常工作。但我想用3或4个不同版本的不同标准对我的整个数据集执行此操作 我的第一次尝试是在满足各种条件时尝试更改@CriteriaMetCount的值,并使用该计数执行前半部分或后半部分,但这不起作用。有没有一种方法可以根据不同的标准进行划分,然后使用不同的标准集 declare @TargetNumber BIGINT de

使用SQL server 2012。我使用变量来确定在整个数据集中满足各种标准的次数。我想取其中的一半,先做一件事,然后再做另一半事。当我只包含那些满足条件的实例时,它可以正常工作。但我想用3或4个不同版本的不同标准对我的整个数据集执行此操作

我的第一次尝试是在满足各种条件时尝试更改@CriteriaMetCount的值,并使用该计数执行前半部分或后半部分,但这不起作用。有没有一种方法可以根据不同的标准进行划分,然后使用不同的标准集

declare @TargetNumber BIGINT
declare @TargetHalf BIGINT
declare @CriteriaMetCount BIGINT

set @CriteriaMetCount=1
Set @TargetNumber=(

select count(distinct(AI2.AccountID)) from Table_AccountInfo AI2
where
AI2.OrgID in (
    select distinct(Org2.OrgID) from Table_Organization Org2
        where Org2.OrganizationName like ('%Name%'))
and (various criteria here)
)

Set @TargetHalf= (select iif(
(@TargetNumber%2)>0,((@TargetNumber+1)/2),(@TargetNumber/2)))

select  AI.AccountID, @targethalf, @targetnumber,ROW_Number() over(order by AI.AccountID) AS ROW_COUNT,
case when ((ROW_Number() over(order by AI.AccountID))<=@targethalf) then  'first_half_thing' else 'second_half_thing' end, 
iif(((ROW_Number() over(order by AI.AccountID))%2=0),(@CriteriaMetCount+1),@CriteriaMetCount)


from Table_AccountInfo LI
where AI.AccountID >= @TargetNumber
and AI.OrgID in (
        select distinct(Org.OrgID) from Table_Organization Org
        where Org.OrganizationName like ('%Name%')) 


and (various criteria here) 

好的,我这样做了:添加了一个临时表,第一个操作评估了整个数据集的各种条件,然后做了一个简单的案例,检查当前帐户ID与临时表中存储的帐户ID

我第一次以这样的方式使用临时表,它成功了,所以你就这样做了