如何将列标题转换为贷款号码的行[关闭]

2024-04-04

我陷入了无法旋转的境地。我有一个类似下面#temp 的表。 使用sql server 2008 r2

Select LoanNumber = 2000424385
    ,[AmntType1] = 120.32
    ,[AmntType2] = 131.52
    ,[AmntType3] = 142.36
    into #temp

从#temp中选择*

上表只有一行,我想要三行,如下所示

LoanNumber Amount AmountType
2000424385 120.32 AmntType1
2000424385 131.52 AmntType2
2000424385 120.32 AmntType1

您应该能够将以下内容与 UNPIVOT 函数一起使用:

select loanNumber,
  amount, 
  amounttype
from #temp
unpivot
(
  amount
  for amounttype in (AmntType1, AmntType2, AmntType3)
) unp;

See SQL 摆弄演示 http://sqlfiddle.com/#!3/d41d8/29227.

或者因为您使用的是 SQL Server 2008 R2,所以也可以使用以下方式编写CROSS APPLY:

select loannumber, 
  amount,
  amounttype
from #temp
cross apply
(
  values
    ('AmntType1', AmntType1),
    ('AmntType2', AmntType2),
    ('AmntType3', AmntType3)
) c (amounttype, amount);

See SQL 摆弄演示 http://sqlfiddle.com/#!3/d41d8/29228

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将列标题转换为贷款号码的行[关闭] 的相关文章

随机推荐