Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 奇偶事件中的不同选择标准_Sql_Sql Server - Fatal编程技术网

Sql 奇偶事件中的不同选择标准

Sql 奇偶事件中的不同选择标准,sql,sql-server,Sql,Sql Server,我有一张这样的表(100亿行) 援助只能是0或1。BID和CID可以是任何东西。 现在我想先选择事件,AID=1,然后选择AID=0,再选择AID=1,然后选择AID=0。 其思想是选择相等数量的AID=1和AID=0事件。 我怎样才能做到这一点 预期的结果是 AID BID CID 1 2 1 0 1 4 1 6 9 0 4 2 1 3

我有一张这样的表(100亿行)



援助只能是0或1。BID和CID可以是任何东西。 现在我想先选择事件,AID=1,然后选择AID=0,再选择AID=1,然后选择AID=0。 其思想是选择相等数量的AID=1和AID=0事件。 我怎样才能做到这一点

预期的结果是

AID   BID   CID     
  1     2     1     
  0     1     4     
  1     6     9     
  0     4     2     
  1     3     2     
  0     0     1     
输出:

AID         BID         CID
----------- ----------- -----------
1           100         2
0           4           2
1           3           2
0           1           4
1           6           9
0           0           1
1           2           1

(7 row(s) affected)

这里的预期结果是什么?请提供所需的结果和您尝试过的查询(如果有)。你的解释不清楚。请把你到现在为止试过的东西贴出来。以及它是如何失败的。在那之前,这只是另一个“给我密码”的问题。我想他希望看到交替的,1行,然后0行。如果AID=0和1事件的数量不均衡,您希望发生什么?大家好,我不知道如何做到这一点,因此我在问。我知道如何根据某些标准选择活动。但我不知道如何处理不同行的不同标准。是的。。在阅读问题时,我也意识到了这一点。。但因为是sqlserver,我需要检查可行性(我使用Oracle数据库)…谢谢,它很快:),我是SQL的新手。@pratikgarg从未与Oracle合作过:(不幸的是)。
;WITH cte AS (
select *
FROM (VALUES
(1, 2, 1),
(1, 6, 9),
(0, 1, 4),
(1, 3, 2),
(1, 100, 2), 
(0, 4, 2), 
(0, 0, 1)
) as t(AID, BID, CID)
),
withrow AS (
SELECT ROW_NUMBER() OVER (PARTITION BY AID ORDER BY AID) as RN, *
FROM cte)

SELECT AID,BID,CID
FROM withrow 
ORDER BY RN asc , aid desc
AID         BID         CID
----------- ----------- -----------
1           100         2
0           4           2
1           3           2
0           1           4
1           6           9
0           0           1
1           2           1

(7 row(s) affected)