Sql 我需要在sybase中编写Update语句

Sql 我需要在sybase中编写Update语句,sql,sql-update,sybase,sap-ase,Sql,Sql Update,Sybase,Sap Ase,这是我的表格,如果我们观察它,有6个匹配ID,其中3个是795,3个是td party和一些独特的匹配ID 我需要的是,如果同一方有重复的match_id,我需要将第一行重复项标记为x,如果没有重复项,我需要将它们也标记为x 如果我使用此查询: select distinct match_id,party , count(match_id) from temp_table group by match_id,party having count(*) > 0 我可以得到计数,但如何从中

这是我的表格,如果我们观察它,有6个匹配ID,其中3个是795,3个是td party和一些独特的匹配ID

我需要的是,如果同一方有重复的match_id,我需要将第一行重复项标记为x,如果没有重复项,我需要将它们也标记为x

如果我使用此查询:

select distinct match_id,party , count(match_id) from temp_table 
group by match_id,party having count(*) > 0
我可以得到计数,但如何从中选择


本表:

match_id ------------ party--------  ind    
413082597------------ co-795    ---------                      
413082597------------ co-795                        
413082597------------ TD     
413082597------------ TD
413082597------------ TD
424421945-------      co-3376
424421946-------      co-3376
需要的是:

match_id -----    party ---------   ind
413082597------- CO-795   -----------x
413082597--------CO-795
413082597--------CO-795
413082597------ TD   ---------------x
413082597----   ----TD
413082597---------TD
424421945-------CO-3376------------   x
424421946----   CO-3376  ----------------x

我同意戈登·林诺夫的观点。您需要一个附加字段来定义排序顺序,以便将一行指定为“第一”。假设您在seq列上按升序排序,那么SQL将类似于

SELECT match_id, party, 
     IF EXISTS SELECT * FROM table t2 WHERE t2.match_id = t1.match_id
         AND t2.party = t1.party
         AND t2.id < t1.id
     THEN "" ELSE "x"
     END

FROM table t1
ORDER BY match_id, party, seq
选择匹配\u id,参与方,
如果存在,请从表t2中选择*,其中t2.match\u id=t1.match\u id
和t2.party=t1.party
t2.id
上面的代码将为单例行生成一个“x”。如果我没看错你的要求,这就是你想要的


另一种可能是将flag(x或blank)列添加到temp表中,并使用光标按排序顺序处理,以向每一行添加x,除非前一行具有相同的键值。然后按排序顺序选择,包括标记行说明。

您需要某种类型的唯一id。请提供示例代码和预期结果。如何确定将哪个副本标记为“x”?表中是否有其他列计划用于帮助确定哪些行标记为“x”?有。但我应该根据身份证和派对来选择。当我们得到一组重复数据时,第一行应该在这些重复数据集中的IND列中标记为x。当其他unix脚本运行此命令并获得不同的值时,请定义“first”对行的含义。