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

Sql server 2012 根据引用类型从查询中获取特定列,sql-server-2012,Sql Server 2012,我从联接查询中得到两列。我的要求是:我需要添加一个名为ReferenceType的标志列。如果我传递RefType='A',那么它应该返回第一列值,如果我传递RefType='X',那么is应该返回第二列值 查询: select A.AID, X.XID from ABC A left outer join XYZ X on A.AID = X.AID ╔═══════╦═══════╗ ║ A.AID ║ X.XID ║ ╠═══════╬═══════╣ ║ 1 ║ 11 ║

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

查询:

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   ║
╚═══════╩═══════╝
对于下面的查询,它应该返回一个.AID列 查询:


在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

很抱歉,我不明白你的问题。
SELECT IIF(ReferenceType='A', A.AID, X.XID )
from ABC A left outer join XYZ X
    on A.AID = X.AID