根据引用类型从查询中获取特定列

时间:2016-03-31 05:02:49

标签: sql-server-2012

我从连接查询中获得两列。我的要求是:我需要添加一个名为ReferenceType的标志列。如果我通过RefType =' A'那么它应该返回第一列值,如果我传递RefType =' X'那么应该返回第二列值。

查询:

select A.AID, X.XID
from ABC A left outer join XYZ X
on A.AID = X.AID

╔═══════╦═══════╗
║ A.AID ║ X.XID ║
╠═══════╬═══════╣
║   1   ║  11   ║
║   2   ║  12   ║
║   3   ║  13   ║
║   4   ║  14   ║
║   5   ║  15   ║
╚═══════╩═══════╝

对于以下查询,它应返回A.AID列 查询:

select A.AID, X.XID
from ABC A left outer join XYZ X
    on A.AID = X.AID
where ReferenceType='A'

1 个答案:

答案 0 :(得分:1)

在MS SQL 2012中:使用[IIF()][1]

SELECT IIF(ReferenceType='A', A.AID, X.XID )
from ABC A left outer join XYZ X
    on A.AID = X.AID