Iif 语句。输出多列

Posted

技术标签:

【中文标题】Iif 语句。输出多列【英文标题】:Iif statement. Output multiple columns 【发布时间】:2017-03-23 21:03:34 【问题描述】:

所以我有另一个与学校相关的障碍:

Northwind Traders 的代表将在德国。管理层希望她在现场访问所有德国供应商和客户。提供德国所有供应商和客户的名单,包括联系人和地址。在报告中指明上市公司是客户还是供应商。

供应商和客户都使用相同的表值。即 CompanyName、ContactName、Address、City 等。唯一的事情是;我正在尝试做这样的事情:

SELECT IIF(c.Country = 'Germany', (Select c.Country, c.CompanyName From Customers c), (Select s.Country, s.City From Suppliers s))

我输出的不仅仅是两列,而是更多。 而且我还得把它写成报告。

编辑:是的,我有 where 子句:Where c.Country = 'Germany' OR s.Country='Germany'

编辑 2

Select IIF(c.Country='Germany',(c.CompanyName, c.ContactName c.Address, c.City, c.Country, c.PostalCode), (s.CompanyName, s.ContactName, s.Address, s.City, s.Country, s.PostalCode))
From (((Customers c left join Orders o
on c.CustomerID = o.CustomerID) left join OrderDetails od
on o.OrderID = od.OrderID) left Join Products p
on od.ProductID = p.ProductID) left join Suppliers s
on p.SupplierID = s.SupplierID
Where c.Country = 'Germany' OR s.Country='Germany'

【问题讨论】:

完全没有 WHERE 子句让我觉得你从错误的角度处理这个问题。 我确实有 where 子句。只是忘了在问题中说。更新问题以反映此类情况。 @Firestar001 我建议将整个 SQL 语句放入并将其格式化为代码。为此,请突出显示您的代码并按 按钮。 我将创建两个单独的查询,一个用于供应商,另一个用于客户,其中 country=Germany 和 use a UNION。我不认为 IIF 是正确的方法。 @fvu 实际上,是的。工会的事情真的解决了。 【参考方案1】:
Select c.CompanyName, c.Address, c.City, c.Country, c.PostalCode
From Customers c
Where c.Country = 'Germany'
UNION
select s.CompanyName, s.Address, s.City, s.Country, s.PostalCode
From Suppliers s
Where s.Country = 'Germany'

有有效的代码。

【讨论】:

耶!我可以建议您在一两天后回来,如果没有人有更好的答案接受您自己的答案作为向未来访问者发出此答案有效的信号?

以上是关于Iif 语句。输出多列的主要内容,如果未能解决你的问题,请参考以下文章

熊猫适用于滚动多列输出

Hive UDF 返回多列输出

函数将多列作为单列而不是多列返回

系统地遍历 DF 的多列和多行以跨多列输出不同的列表大小

PySpark 函数基于多列数据框创建自定义输出

输出多列的PostgreSQL函数或存储过程?