Sql server 2012 根据引用类型从查询中获取特定列
我从联接查询中得到两列。我的要求是:我需要添加一个名为ReferenceType的标志列。如果我传递RefType='A',那么它应该返回第一列值,如果我传递RefType='X',那么is应该返回第二列值 查询: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 ║
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