SQL的转置和查询

版权声明:本文为博主原创文章,欢迎转载,转载标明出处 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 表名')

猜你喜欢

转载自blog.csdn.net/qq_43304572/article/details/83016828