在我的 Customers
表中,我有 PrimaryPhone
和 SecondaryPhone
列,我被要求在两个单独的行中返回它们。我还想提一下,在大多数情况下,SecondaryPhone
甚至可能没有值,在这些情况下,不需要返回第二行。
因此,这是来自Customers
表的数据:
CustomerId | CompanyName | PrimaryPhone | SecondaryPhone
123 Acme, Inc. 307-555-1234 307-555-2345
234 DataCorp, Inc. | 824-555-6547
我的
SELECT
语句应该返回以下数据:CustomerId | CompanyName | Phone
123 Acme, Inc. 307-555-1234
123 Acme, Inc. 307-555-2345
234 DataCorp, Inc. 824-555-6547
我很感激有关如何将列中的数据显示为单独行的一些指示。谢谢。
最佳答案
CROSS APPLY 很适合这里
Select CustomerId
,CompanyName
,B.*
From Customers A
Cross Apply (values (PrimaryPhone)
,(SecondaryPhone)
) B(Phone)
Where Phone is not null
-- 编辑忘记了 WHERE
关于sql-server - 在 SELECT 语句中的单独行中返回列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55457484/