版权声明:本文为博主原创文章,欢迎转载,转载标明出处 https://blog.csdn.net/qq_43304572/article/details/83016828
关于SQL的第一个问题:转置
之前项目中有一个需求,将数据库里面的某些列显示在表头给用户看,如下表格数据:
专家 | 分数 |
---|---|
张三 | 80 |
小赵 | 96 |
王五 | 88 |
李四 | 90 |
需要转化成如下的格式:即某列数据作为字段显示
张三 | 小赵 |
---|---|
80 | 96 |
解决方案:
SELECT P.ProgrectName,P.Supplier,P.SupplyNum
FROM
(
SELECT ProgrectName, OverseaSupply, NativeSupply,
SouthSupply, NorthSupply
FROM ProgrectDetail
)T
UNPIVOT
(
SupplyNum FOR Supplier IN
(OverseaSupply, NativeSupply, SouthSupply, NorthSupply )
) P
关于SQL的第二个问题:查询
当查询一张表的时候,如果表里面有20个字段,但是select的19个字段,SQL语句如下:
declare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set @col=stuff(@col,1,1,'')
exec('select '+@col+' from 表名')