弱弱的问个问题,怎么生成“以一张表的标题行的所有列作另一张表的一个记录,字段名称也要相同”的这样的一张新表
从这样一张表
au_idau_lnameau_fnamephoneaddresscitystatezipcontract
172-32-1176WhiteJohnson408 496-722310932 Bigge Rd.Menlo ParkCA940251
213-46-8915GreenMarjorie415 986-7020309 63rd St. #411OaklandCA946181
238-95-7766CarsonCheryl415 548-7723589 Darwin Ln.BerkeleyCA947051
267-41-2394O'LearyMichael408 286-242822 Cleveland Av. #14San JoseCA951281
274-80-9391StraightDean415 834-29195420 College Av.OaklandCA946091
341-22-1782SmithMeander913 843-046210 Mississippi Dr.LawrenceKS660440
409-56-7008BennetAbraham415 658-99326223 Bateman St.BerkeleyCA947051
427-17-2319DullAnn415 836-71283410 Blonde St.Palo AltoCA943011
472-27-2349GringlesbyBurt707 938-6445PO Box 792CoveloCA954281
486-29-1786LocksleyCharlene415 585-462018 Broadway Av.San FranciscoCA941301
527-72-3246GreeneMorningstar615 297-272322 Graybar House Rd.NashvilleTN372150
648-92-1872Blotchet-HallsReginald503 745-640255 Hillsdale Bl.CorvallisOR973301
672-71-3249YokomotoAkiko415 935-42283 Silver Ct.Walnut CreekCA945951
712-45-1867del CastilloInnes615 996-82752286 Cram Pl. #86Ann ArborMI481051
722-51-5454DeFranceMichel219 547-99823 Balding Pl.GaryIN464031
724-08-9931StringerDirk415 843-29915420 Telegraph Av.OaklandCA946090
724-80-9391MacFeatherStearns415 354-712844 Upland Hts.OaklandCA946121
756-30-7391KarsenLivia415 534-92195720 McAuley St.OaklandCA946091
807-91-6654PanteleySylvia301 946-88531956 Arlington Pl.RockvilleMD208531
846-92-7186HunterSheryl415 836-71283410 Blonde St.Palo AltoCA943011
893-72-1158McBaddenHeather707 448-4982301 PutnamVacavilleCA956880
899-46-2035RingerAnne801 826-075267 Seventh Av.Salt Lake CityUT841521
998-72-3567RingerAlbert801 826-075267 Seventh Av.Salt Lake CityUT841521
得到
au_idau_lnameau_fnamephoneaddresscitystatezipcontract
au_idau_lnameau_fnamephoneaddresscitystatezipcontract
这样一张表
最好是动态sql(我的目的是为了给BCP产生表头)
[解决办法]
CREATE TABLE test (A VARCHAR(10),B VARCHAR(10),C VARCHAR(10)) GO declare @s nvarchar(4000) set @s='' Select @s=@s+','+quotename([name])+'=max(case when [name]='+quotename([name],'''')+' then [name] else ''0'' end)' from sys.columns WHERE object_id=OBJECT_ID('test') group BY [object_id],[name] SET @s=SUBSTRING(@s,2,LEN(@s)) exec('select '+@s+' from sys.columns WHERE object_id=OBJECT_ID(''test'') group BY [object_id]') /* A B C ----- ---- ---- A B C (1 行受影响) */