Sql 如何加入IIF函数?
您好,我正在使用MSSQL 2017,并尝试了解此代码是如何工作的Sql 如何加入IIF函数?,sql,sql-server,tsql,join,Sql,Sql Server,Tsql,Join,您好,我正在使用MSSQL 2017,并尝试了解此代码是如何工作的 DECLARE @customer TABLE ( credithold bit, id int primary key, deliverycityID int, postalcityID int ) DECLARE @city TABLE ( cityid int primary key, pop bigint ) INSERT INTO @city VALUES (1,
DECLARE @customer TABLE (
credithold bit,
id int primary key,
deliverycityID int,
postalcityID int
)
DECLARE @city TABLE (
cityid int primary key,
pop bigint
)
INSERT INTO @city VALUES (1,2666),(2,7889),(3,28917)
INSERT INTO @customer VALUES(1,1,2,1),(0,2,3,2),(1,3,1,3),(0,4,2,3)
SELECT c1.id, pop, IIF(credithold = 0, deliverycityID, postalcityID) as cityid
FROM @customer c1
INNER JOIN @city AS A ON A.cityid = cityid
代码给出如下结果
()
但我认为它应该像这样回来
()
有什么建议吗?谢谢大家!
很抱歉,由于声誉不足,我无法直接发布图像。正确的加入方法是这样做,只需执行以下操作:
SELECT c1.id, pop, IIF(credithold = 0, deliverycityID, postalcityID) as cityid
FROM @customer c1
INNER JOIN @city AS A ON A.cityid = IIF(credithold = 0, deliverycityID, postalcityID)
正确的连接方法是执行以下操作:
SELECT c1.id, pop, IIF(credithold = 0, deliverycityID, postalcityID) as cityid
FROM @customer c1
INNER JOIN @city AS A ON A.cityid = IIF(credithold = 0, deliverycityID, postalcityID)
你想完成什么?我想了解为什么查询显示的结果像第一张图片,而不是我希望显示的第二张图片。你将“INNER JOIN@city AS A ON A.cityid=cityid”列加入到它的self中。唯一一个有cityid列的表是city table我想第二个cityid是IIF的别名(credithold=0,deliverycityID,postalcityID)不是吗?你想做什么?我想知道为什么查询会显示第一张图片这样的结果,而不是我希望显示的第二张图片。你是在A.cityid=cityid上加入“INNER JOIN@city AS A”这是一个自我介绍的专栏。唯一一个有cityid列的表是city table我想第二个cityid是IIF的别名(credithold=0,deliverycityID,postalcityID)不是吗?