privot函式使用

2022-09-17 09:45:16 字數 1844 閱讀 2194

語法:

table_source

pivot(

聚合函式(value_column)

for pivot_column

in()

)將列轉化為行

寫個小示例 :比如按人統計該月份的考勤小時數

use

[test]go

/****** object: table [dbo].[kaoqin] script date: 07/06/2017 15:44:34 *****

*/set ansi_nulls on

goset quoted_identifier on

gocreate

table

[dbo

].[kaoqin](

[autoid][

int]

identity(1,1) not

null

,

[username][

nvarchar

](50) null

, [dt

][datetime

]null

,

[hour][

int]

null,

constraint

[pk_kaoqin

]primary

keyclustered

(

[autoid

]asc

)with (pad_index =

off, statistics_norecompute =

off, ignore_dup_key =

off, allow_row_locks =

on, allow_page_locks =

on) on

[primary])

on[primary

]go

然後新增一點兒測試資料

declare

@count

intset

@count=5

declare

@iint

set@i=0

declare

@riqi

datetime

set@riqi

=getdate

()while

@i<

@count

begin

set@riqi

=dateadd(day,1,@riqi

)

insert

into dbo.kaoqin values('

王二',@riqi, cast(rand()*

10as

int))

set@i=@i

+1end

最後資料是這樣的

傳統的辦法當然也可以解決,如下

select

sum( case

when username='張三

'then hour else

0end )as'張三

',sum( case

when username='李四

'then hour else

0end ) as'李四

',sum( case

when username='王二

'then hour else

0end ) as'王二

'from dbo.kaoqin

哪些下面重點來了 我們用pivot

函式 使用函式指標操作函式

設計乙個名為calculate 的函式,他接受兩個double 值和乙個指向函式的指標,而被指向的函式接受兩個double引數,並返回乙個double值 calculate 函式的型別也是double,並返回被指向的函式值用calculate 的兩個double引數計算得到的值。例如,假設add 函...

eval函式 php PHP eval函式使用介紹

eval echo hello world 上邊 等同於下邊的 echo hello world 在瀏覽器中都輸出 hello world 運用eval 要注意幾點 1.eval函式的引數的字串末尾一定要有分號,在最後還要另加乙個分號 這個分號是php限制 2.注意單引號,雙引號和反斜槓的運用。如果...

函式 函式使用效能

以便 defer 能在合適時機執行 錯誤的例子 func example 這地方有個問題,example 函式是乙個加鎖操作。m.unlock 只有在 example 函式結束的時候才執行,那麼每次迴圈實際上是執行m.lock 語句,這個時候解鎖操作會被延遲到函式結束。很顯然這個邏輯並不是我們想要的...