首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用条件条件更改Row_Number like操作

使用条件条件更改Row_Number like操作
EN

Stack Overflow用户
提问于 2013-05-24 22:29:46
回答 1查看 518关注 0票数 0

使用SQL server 2012。我使用变量来识别在我的整个数据集中满足“各种标准”的次数。我想用这些实例中的一半做一件事"first_half_thing“,另一半做一件"second_half_thing”。当我只包含那些满足条件的实例时,它工作得很好。但是我想在我的整个数据集上使用3到4个不同版本的“各种标准”来执行这个操作。

我的第一次尝试是尝试在满足“各种条件”时更改@CriteriaMetCount的值,并使用该计数来执行"first_half_thing“或"second_half_thing”,但这不起作用。有没有一种方法可以Partition by然后使用不同的“各种标准”

代码语言:javascript
复制
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) 
EN

回答 1

Stack Overflow用户

发布于 2013-05-25 02:13:59

好的,我这样做了:添加了一个临时表,它执行了第一个操作(根据“各种标准”评估了整个数据集),然后执行了一个简单的case when来检查当前的AccountID与存储在临时表中的那些。

这是我第一次以这种方式使用临时表,它起作用了,就这样吧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16737396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档