乙個交叉表

2021-04-17 03:19:08 字數 1516 閱讀 7656

乙個交叉表.用字段明做為值:原表資料為:

欄位1   欄位2   欄位3

a1           b1           c1

a2           b2           c2

變換後:

col1         col2        col3

欄位1           a1                a2

欄位2            b1                b2

欄位3            c1                c2

createtabletablename(欄位1varchar(100),欄位2varchar(100),欄位3varchar(100))

inserttablenameselect'g**900/1800mhz/gprs', '85*44*21mm','80'      

unionallselect'g**900/1800mhz/gprs','82*46*21.5mm','79'     

goselect  top0

欄位名=a.name 

intoabc

fromsyscolumnsa 

innerjoinsysobjectsdona.id=d.id 

leftjoinsyspropertiesfond.id=f.idandf.**allid=0 

where   d.xtype='u'and d.name='tablename' 

orderbya.id,a.colorder 

select  top0

note=a.name 

intoabcd

fromsyscolumnsa 

innerjoinsysobjectsdona.id=d.id 

leftjoinsyspropertiesfond.id=f.idandf.**allid=0 

where   d.xtype='u' --表示使用者型別

and d.name='tablename'  --需要獲取欄位的表

orderbya.id,a.colorder 

declare@numint,@colvarchar(50),@namevarchar(200), @name1 varchar(200),@countint,@num1varchar(5)

select@num=1

select@count=count(*)fromtablename

while (@count>0)

begin

select@col='col'+convert(varchar,@num)

exec('altertable abcadd['+@col+'] varchar(200) null')    

select@num=@num+1

set @count=@count-1

enddeclareaddnamecolumns_cursorinsensitivecursor                    --取字段值1

如何交叉取乙個表的資料

有這樣乙個需求,先說下表結構,這個表裡有帖子資訊和問答資訊,1對1或者1對多。type 1是帖子資訊型別 2 是問答型別 create table wenda id int 11 not null auto increment,title varchar 50 not null,type int 4...

用乙個表的記錄更新另外乙個表

用table 1的address,phone number更新table 2的address,phone number,注意 1.set 後面加上要更新的列,有多個要更新的列時,加上多個列,2.where 後面加上table 1和table 2的關聯列,有多個關聯列時,加上多個列 3.rownum用...

乙個表寫給另乙個表的情書

親愛的mrs tablemm 每次你微笑的看著我,都會引發使我心跳加速的觸發器,我發現自己已深深地愛上了你,無法逃避,因為我們在同乙個database裡。經過我長期的查詢分 析,對你表結構的了解也越來越清晰,你溫柔美麗,高雅賢淑,簡直就是我心目中的bcd。我多想join你,但找不到合適的id.if你...