1. 程式人生 > >SQL的轉置和查詢

SQL的轉置和查詢

關於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 @[email protected]+','+name from syscolumns where id=object_id('表名') and name<>'排除的欄位名' order by colid
set @col=stuff(@col,1,1,'')
exec('select '[email protected]+' from 表名')