MS SQL行列轉換問題,求大神幫忙

2022-03-25 12:29:11 字數 4497 閱讀 8731

1樓:玩轉資料處理

1.declare @test table(時間 date,資料 float)

insert into @test values('2014-07-31',2.8)

insert into @test values('2014-06-30',2.4)

insert into @test values('2014-05-31',5.4)

insert into @test values('2014-04-30',1.1)

select n'時間,'+stuff(( select ',' + convert(varchar(20),isnull(時間,'2000/01/01')) from @test t2 for xml path('')) , 1, 1, '')

union all

select n'資料,'+stuff(( select ',' + convert(varchar(20),isnull(資料,0)) from @test t2 for xml path('')) , 1, 1, '')

2.得到如下資料

時間,2014-07-31,2014-06-30,2014-05-31,2014-04-30

資料,2.8,2.4,5.4,1.1

3.儲存 2 中的資料為csv就可以了

2樓:匿名使用者

把列名搞沒了不太好吧。

輸出原表到excel,複製所有區域,貼上選項---選擇 轉置就是以上的效果。

sql 行列轉換問題,請高手指點。

3樓:擺渡浮橋

該問題的關鍵是sql server 2000欄位大小限制了。

有個笨的辦法,將325個物料分成兩組(如果還不夠,分成3組),用你這種方法分別進行行列轉換,放入臨時表,然後將臨時表連線起來。

如果是sql server 2005就好辦了,直接將@sql申明成varchar(max)就行了,它最大支援2gb,應該可以解決此問題。另外,sql server 2005專門針對行列轉換,有了pivot子句。

4樓:手機使用者

根據篩選列生成了新的資料行。

例如select dz,[男]=sum(case when xb='男' then sl else 0 end),

[女]=sum(case when xb='女' then sl else 0 end)

from table1 group by dz根據table1 中的資料行xb 分成了男女兩列資料。

5樓:你好師姐

看你的樣子是列轉行,sql每個版本都有相應的列限制,如果超出限制列你得想其它方法來處理

就算用別的方法來處理,select 最多支援4096個列,我想也不可以無限制地增加

6樓:匿名使用者

我剛才試了一下你的方法,應該是可行的。

方法如下:

declare @sql varchar(8000)set @sql = 'select page_type'

select @sql=@sql+',max(case updatetime when '''+updatetime +''' then updatetime else null end) ['+updatetime +']'

from (select distinct updatetime from userpage) as a

set @sql = @sql + ' from userpage group by page_type'

exec(@sql)

我個人覺得應該是的material 欄位值超出了1024吧。

建議使用print(@sql)試一下,再減少一下欄位試一試吧。

sql 行列轉換的問題 30

7樓:遇到不靠譜君

轉置你可以參考一下這幾行

select student,subject,grade from table;

student subject grade

--------- ---------- --------

student1 語文 80

student1 數學 70

student1 英語 60

student2 語文 90

student2 數學 80

student2 英語 100

……轉換為

語文 數學 英語

student1 80 70 60

student2 90 80 100

……語句如下:select student,

sum(decode(subject,'語文', grade,null)) "語文",

sum(decode(subject,'數學', grade,null)) "數學",

sum(decode(subject,'英語', grade,null)) "英語"

from

(select student,subject,grade from table

)group by student;

8樓:韓湘子看**

這個問問其他人,我也關注

sql 行列轉換相關問題

9樓:

pivot 用於將列值旋轉為列名(即行轉列),在 sql server 2000可以用聚合函式配合case語句實現

pivot 的一般語法是:pivot(聚合函式(列) for 列 in (…) )as p

上面有個例項教程,自己改下你的表就可以了

sql server 行列轉換問題

10樓:匿名使用者

---都不知道你是什麼樣的資料 怎麼幫你

--給你一個行轉列的例題吧 很簡單的

----------行列的轉換例項

create table tb(姓名 varchar(10) , 課程 varchar(10) , 分數 int)

insert into tb values('張三' , '語文' , 74)

insert into tb values('張三' , '數學' , 83)

insert into tb values('張三' , '物理' , 93)

insert into tb values('李四' , '語文' , 74)

insert into tb values('李四' , '數學' , 84)

insert into tb values('李四' , '物理' , 94)

select * from tb

---行轉為列

--法一:

select 姓名,max(case 課程 when '語文' then 分數 else 0 end) 語文,

max(case 課程 when '數學' then 分數 else 0 end) 數學,

max(case 課程 when '物理' then 分數 else 0 end) 物理

from tb

group by 姓名

sql server行列轉換問題

11樓:我tm不管

declare @sql varchar(8000)select @sql='select a.productid as 商品id'

select @sql=@sql+',max(case a.name when '''+name+''' then a.property else null end ) as '+name from (select distinct ltrim(rtrim(name)) as name from test) b

select @sql=@sql+' from test a group by a.productid'

print @sql

exec (@sql)

12樓:

select productid,

max(case name when '製造商' then property else '' end) 製造商,

max(case name when '產品種類' then property end) 產品種類,

max(case name when 'rohs' then property end) rohs,

max(case name when '解析度' then property end) 解析度,

max(case name when '工作電源電壓' then property end) 工作電源電壓,

max(case name when '封裝' then property end) 封裝

from pro group by productid

關於線性代數二次型正交轉換的問題求大神幫忙

第一 來二列應該是單位向量且和第 自三列向量a垂直 第一列可取列向量 0 1 0 第二列可取 1 根號2 0 1 根號2 由此得到正交陣q 為得到a 可按照公式a qtkq 其中k為對角元為2 2丶0的對角陣 計算得 a 2 0 0 0 1 1 0 1 1 線性代數關於二次型的問題。求大神 先寫出來...

求大神幫編寫簡單的c語言程式,問題如下

您好,抄根據您 襲的bai問題,du 我已寫出zhi程式dao include int main else if a else if b printf d d d n p3,p2,p1 return 0 求大神幫編寫一個簡單的c語言程式,問題如下 include void input int a,i...

求英語大神幫做短文改錯啊,求英語大神幫做短文改錯啊啊啊

第一行 held前面加was 第三行 came coming 第四行 warmly warm 第六行 drew drawn 第七行 that which 第八行 work works 第十行 in with 第十一行 our their 第十三行 developed develop 求大神幫我改一下...