Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何加入IIF函数?_Sql_Sql Server_Tsql_Join - Fatal编程技术网

Sql 如何加入IIF函数?

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,

您好,我正在使用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,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)不是吗?