SQL左连接用例语句

时间:2019-08-30 13:01:48

标签: tsql sybase-ase

需要一些帮助来设计SQL。不幸的是,tsql的版本是我不太熟悉的SybaseASE,在MS SQL中,我会在子查询中使用诸如RANK()或ROW_NUMBER()之类的窗口函数,并加入到这些结果中……

这就是我要解决的问题

java.lang.NoClassDefFoundError: Could not initialize class com.company.cooperate.integracaosoftwareterceiro.server.AdiantamentoDocument
    at com.company.cooperate.integracaosoftwareterceiro.server.AdiantamentoDocument$Factory.newInstance(AdiantamentoDocument.java:3036)
    at com.company.cooperate.integracaosoftwareterceiro.server.enviocadastro.xml.PopuladorXmlAdiantamento.build(PopuladorXmlAdiantamento.java:60)

我想为每个ID返回1行,并且如果ID具有应显示的类型'A'记录,如果它具有不同的类型,则没关系,但不能为null(可以做一些任意操作)排序,例如使用alpha来区分“其他”返回值类型的优先级)

TABLE A  
Id    
1  
2  
3

TABLE B  
Id,Type  
1,A  
1,B  
1,C  
2,A  
2,B  
3,A  
3,C    
4,B
4,C  

常规左连接(ON A.id = B.id和B.type ='A')ALMOST返回我要查找的内容,但是当我想要“下一个可用”类型时,该类型返回null。

1 个答案:

答案 0 :(得分:0)

您可以在子查询(FirstTypeResult)上使用INNER JOIN,该查询将返回每个ID的最小类型。 例如:

SELECT TABLEA.[Id], FirstTypeResult.[Type]
FROM TABLEA 
JOIN (
   SELECT [Id], Min([Type]) As [Type] 
   FROM TABLEB
   GROUP BY [Id]
) FirstTypeResult ON FirstTypeResult.[Id] = TABLEA.[Id]