我的 SQL Server 数据库中有一个预算表,如下所示:
create table #cols (
acctid int,
yr int,
pd01 numeric(15,2),
pd02 numeric(15,2),
pd03 numeric(15,2),
.
.
.
pd13 numeric(15,2),
primary key(acctid, yr));
我需要获取各个列中的数据并将其切换为基于行的格式表,如下所示:
create table #rows (
acctid int,
yr int,
pd int,
amt numeric(15,2),
primary key(acctid, yr, pd));
现在我可以像这样运行 13 条 SQL 语句:
insert into #rows select acctid, yr, 1, pd01 from #cols;
.
.
.
insert into #rows select acctid, yr, 13, pd13 from #cols;
但我想知道是否有更有效/更优雅的方式来做到这一点?