Sql server sql server中多个联接语句中的用例

Sql server sql server中多个联接语句中的用例,sql-server,Sql Server,我使用SQL查询从多个表中提取数据。我使用不同的JOIN语句连接了8个表。我想加入另一个表,但它返回两行,但我只想要一行。我该怎么办 Table-10 ID ISmailing IsPhysical 1 0 1 2 1 0 我想先拉取ismailing值为'1'的行,否则拉取isphysical值为'1'的行。所以我只想拉一排 任何帮助都将不胜感激。 先谢谢你 尝试使用一个ROW_NUMBER函数,按所需条件对多行进行

我使用SQL查询从多个表中提取数据。我使用不同的JOIN语句连接了8个表。我想加入另一个表,但它返回两行,但我只想要一行。我该怎么办

Table-10
ID  ISmailing    IsPhysical
1       0            1
2       1            0
我想先拉取ismailing值为'1'的行,否则拉取isphysical值为'1'的行。所以我只想拉一排

任何帮助都将不胜感激。 先谢谢你

尝试使用一个ROW_NUMBER函数,按所需条件对多行进行排序,然后加入该数据集并仅返回第一个值

SELECT *
FROM 
    MyTable
     LEFT OUTER JOIN 
      (
        SELECT 
            ID,
            IsMailing,
            IsPhysical,
            ROW_NUMBER() OVER (PARTITION BY ID ORDER BY CASE WHEN IsMailing = 1 THEN 1 WHEN IsPhysical =1 THEN 2 END) AS RN
        FROM MyOtherTable 
      ) x ON 
        MyTable.ID = x.ID AND 
        x.RN = 1

那么,在哪些条件下,您希望使用行ID=1,在哪些条件下,行ID=2?如果ISmailing='1',则只返回第二行如果ISmailing='0',则选中Isphysical和Isphysical='1',然后只返回该行1整个查询返回两行,您只需要一行?或者查询返回了许多行,并且要连接的新表有时有多个匹配行用于查询行?我只希望两行中有一行。