我使用SQL查询从多个表中提取数据。我使用不同的联接语句连接了8个表。我想加入另一个表,但是它返回两行,但我只想要一行。我做什么好?
Table-10
ID ISmailing IsPhysical
1 0 1
2 1 0我想要先拉出具有ismailing值= '1‘的行,否则就用is物性= '1’拉行。所以我只想拉一排。
任何帮助都将不胜感激。提前谢谢你。
发布于 2015-11-10 17:16:50
尝试使用一个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 = 1https://stackoverflow.com/questions/33635569
复制相似问题