乙個交叉表.用字段明做為值:原表資料為:
欄位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你...