排名基于两个表

时间:2014-11-25 03:31:13

标签: sql-server sql-server-2008

我需要一些帮助才能从两张表中计算排名。

假设我有两个表 - table1和table2。

在表1中,我有以下信息

Disease value
A       20
B       10
C       35

在表2中,我有以下信息

Diseaselist  Othervalue
A             20
B             10
D             35
E             20

我想在这里查看,如果表1中的表1中的A可用,那么它将获得较高的排名,而不是排名。 table1中的C具有比A更多的值,但它在table2中不可用,因此它的排名将低于A和B.

请建议我如何做到这一点。

此致 拉坦

1 个答案:

答案 0 :(得分:1)

您可以使用LEFT JOIN加入这两个表格。要订购行,请使用CASE语句。

SELECT  a.Disease, a.Value
FROM    Table1 a
        LEFT JOIN Table2 b
            ON a.Disease = b.DiseaseList
ORDER   BY CASE WHEN b.DiseaseList IS NULL THEN 1 ELSE 0 END, 
           a.Value DESC