SQL2000和SQL2005的行轉列處理方法

2022-01-15 02:30:58 字數 2227 閱讀 8828

sql2000和sql2005的行轉列處理方法

2007-10-26 09:24

原表結構

select [show_id]

,[year]

,[n1]

,[n2]

,[n3]

,[n4]

,[n5]

from [datapass_db].[dbo].[test]

1:sql2005中的列轉行.

select [show_id], mon, subtotal

from [datapass_db].[dbo].[test] unpivot

(subtotal for mon in

([n1], [n2], [n3],[n4],[n5])

)as unpvt;

2:sql 2000 中的列轉行

declare @tmpsql varchar(8000)

declare @sql varchar(8000)

select @tmpsql = ''

select @tmpsql = @tmpsql + ' union all select '

+' show_id,'

+' year ,'

+name +' as mon'

+' from dbo.test'

from syscolumns

where object_id('dbo.test')=id and left(name,1) = 'n'

select @tmpsql=stuff(@tmpsql,1,11,'')

select @sql = 'select * from ('+@tmpsql+') t where t.mon>0'

print @sql

exec (@sql)

付送:1:查詢,已知列的表名.

select syscolumns.name,sysobjects.name from syscolumns , sysobjects

where syscolumns.id = sysobjects.id and syscolumns.name='要查的列名'

2:找出在兩個資料庫中表名稱在彼此資料庫中不存在的表名稱,欄位.

select accdb.table_name as accdb_table_name,

accdb.columns_name as accdb_columns_name,

accdb1.table_name as accdb1_table_name,

accdb1.columns_name as accdb1_columns_name

from (select accdb.dbo.sysobjects.name as table_name,

accdb.dbo.syscolumns.name as columns_name

from accdb.dbo.syscolumns inner join

accdb.dbo.sysobjects on

accdb.dbo.syscolumns.id = accdb.dbo.sysobjects.id

where (not (accdb.dbo.syscolumns.name like '@%')) and

(accdb.dbo.sysobjects.xtype = 'u')) accdb left outer join

(select sysobjects.name as table_name,

syscolumns.name as columns_name

from syscolumns inner join

sysobjects on syscolumns.id = sysobjects.id

where (not (syscolumns.name like '@%')) and (sysobjects.xtype = 'u'))

accdb1 on accdb.columns_name = accdb1.columns_name and

accdb.table_name = accdb1.table_name

where (accdb1.table_name is null) or

(accdb1.columns_name is null) order by accdb.table_name,accdb.columns_name

其中accdb1為舊庫,accdb為新庫。

不只能查出表不同, 還包括欄位的

Sql2000和Sql2005共存安裝詳細過程

在安裝了sql2000的基礎上安裝sql2005的詳細過程 sql2005版本 sql2005開發版,兩張cd的那種 作業系統 window 2003 server 假設您的電腦已安裝了sql2000,下面開始安裝sql2005。一 執行光碟1 跳過 準備 步驟,直接進行 伺服器元件 工具 聯機叢書...

SQL2005的資料轉成SQL2000

直接restore或附加應該是不行的,用指令碼 導資料肯定沒有問題。2005轉到2000的步驟 1.生成for 2000版本的資料庫指令碼 2005 的manger studio 開啟 物件資源管理器 沒有的話按f8 連線到你的例項 右鍵要轉到2000的庫 任務 生成指令碼 在 指令碼嚮導 的 選擇...

SQL2000和SQL2005的行轉列處理方法

select show id year n1 n2 n3 n4 n5 from datapass db dbo test 1 sql2005中的列轉行.select show id mon,subtotal from datapass db dbo test unpivot subtotal for...