我从连接查询中获得两列。我的要求是:我需要添加一个名为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'
答案 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