Sql Server 2008的動態交叉表

2021-06-20 07:37:19 字數 876 閱讀 6436

今天又幫別人寫了一段動態交叉表,幾年沒搞了,生疏了點,馬上再記錄一下

declare @s varchar(max)

set @s = ''

select @s = @s + ',[' + typename + ']'

from view_analogy_dynamicquery

group by typename

set @s = stuff(@s, 1, 1, '')

declare @max varchar(max)

set @max = ''

select @max = @max + ',max([' + typename + ']) as [' + typename + ']'

from view_analogy_dynamicquery

group by typename

set @max = stuff(@max, 1, 1, '')

exec('

select restype,reservoirversionid,'+@max+' from (

select restype,reservoirversionid,'+@s+' from view_analogy_dynamicquery

pivot

( max(value)

for typename in ('+@s+')

) as pt ) x group by restype,reservoirversionid

')

pivot 這個關鍵字前面貌似只能寫from 某個表,如果from a join b on a.id = b.id 這樣總是報錯,無法深究到原因了,用乙個檢視把它封起來了

Sql Server 2008 收縮日誌

收縮日誌 alter database dnname set recovery with no wait goalter database dnname set recovery 簡單模式 gouse dnname godbcc shrinkfile n dnname log 11,truncate...

徹底解除安裝sql server2008

微軟的開發工具在按裝和解除安裝時都讓人頭疼,只能是裝在c盤,裝在其他盤時最容易出事 在重新按裝的時候一定要把以前的例項解除安裝完才行。要不就會出錯。在解除安裝sql server後,其實還沒有完成,還要把登錄檔資訊完全刪乾淨,下面就將教您徹底刪除sql server登錄檔的方法,供您參考。在解除安裝...

SQLServer2008語句查詢

1 判斷資料庫是否存在 if exists select from sys.databases where name 資料庫名 drop database 資料庫名 2 判斷表是否存在 if exists select from sysobjects where id object id 表名 an...