當前位置:首頁 » 編程語言 » 列變行sql

列變行sql

發布時間: 2022-07-19 09:50:48

A. 如何把sql的列值變成行值

比如:有張學生成績表(tb)如下:
Name Subject Result
張三 語文74
張三 數學83
張三 物理93
李四 語文74
李四 數學84
李四 物理94

代碼如下:
create table tb
(
Name varchar(10) ,
Subject varchar(10) ,
Result int
)

insert into tb(Name , Subject , Result) values(張三 , 語文 , 74)
insert into tb(Name , Subject , Result) values(張三 , 數學 , 83)
insert into tb(Name , Subject , Result) values(張三 , 物理 , 93)
insert into tb(Name , Subject , Result) values(李四 , 語文 , 74)
insert into tb(Name , Subject , Result) values(李四 , 數學 , 84)
insert into tb(Name , Subject , Result) values(李四 , 物理 , 94)
go

B. sql 列轉行

CREATE TABLE T1(A NUMBER,
b NUMBER,
c NUMBER,
d NUMBER,
e NUMBER);
insert into t1 values(1,2,3,4,5);
select * from t1;
select decode(A,1,'A',null) KEY ,decode(A,1,1,null) VALUE
from t1
union all
select decode(B,2,'B',null),decode(B,2,2,null)
from t1
union all
select decode(C,3,'C',null),decode(C,3,3,null)
from t1
union all
select decode(D,4,'D',null),decode(D,4,4,null)
from t1
union all
select decode(E,5,'E',null),decode(E,5,5,null)
from t1;

C. sql列轉成行的方法,

汗 Oracle!我貼個MS-SQL05的 誰來轉換下
if not object_id('tb') is null
drop table tb
go
create table tb(uuid int,A int,B int,C int)
go
insert into tb values(1,100,200,300)
insert into tb values(2,120,220,320)

declare @sql varchar(8000)
select @sql=isnull(@sql,'select uuid,''A''as [name],A as[col] from tb ')+' union all select uuid,'''+name+''','+name+' from tb'
from syscolumns where id=object_id('tb') and name not in('uuid','A')
set @sql=@sql+' order by 1,2'
exec(@sql)
uuid name col
----------- ---- -----------
1 A 100
1 B 200
1 C 300
2 A 120
2 B 220
2 C 320

(6 行受影響)

D. SQL語句如何列變行

select 欄位名按照你要求的排序就行了

select a,b,c from tableName 那麼輸出就是 abc對應的順序

E. sql列變行;

declare@sqlvarchar(8000)
set@sql='selectsbordas'+'城市'
select@sql=@sql+',max(casesmonthwhen'''+smonth+'''thensvalueelse0end)['+smonth+']'
from(selectdistinctsmonthfromb)asa
set@sql=@sql+'frombgroupbysbord'
exec(@sql)

F. sql把列變成行

可以用pivot table

G. 如何將列變成行 sql server

可以使用以下SQL語句取出來:
select hsname from sum1 group by hsname
把需要的都建上,不需要的sum到其它中就行了。
縱橫轉換就是把縱向的有限名稱值轉為列名:這就是轉置的本質。

H. sql語句列轉行

主要應用case語句來解決行轉列的問題
行轉列問題主要分為兩類
1)簡單的行轉列問題:
示例表:
id
sid
course
result
1
2005001
語文
80.0
2
2005001
數學
90.0
3
2005001
英語
80.0
4
2005002
語文
56.0
5
2005002
數學
69.0
6
2005002
英語
89.0
執行
select
sid,語文=isnull(sum(case
course
when
'語文'
then
result
end),0),
數學=isnull(sum(case
course
when
'數學'
then
result
end),0),
英語=isnull(sum(case
course
when
'英語'
then
result
end),0)
from
result
group
by
sid
order
by
sid
得出結果
sid
語文
數學
英語
2005001
80.0
90.0
80.0
2005002
56.0
69.0
89.0

I. sql語句怎麼把列變成行

create table rotatetable1 (序號 int,company char(66),box_weight char(12),廢塑料numeric(10,2)),廢五金 numeric(10,2)),廢鋼鐵 numeric(10,2)),廢紙 numeric(10,2)),廢有色 numeric(10,2)),廢纖維 numeric(10,2)),其它 numeric(10,2)),合計 numeric(10,2)));
insert into rotatetable1(company,box_weight) select name ,'weight' from sum1 group by name;
insert into rotatetable1(company,box_weight) select name ,'box' from sum1 group by name;
update rotatetable1 set 廢塑料=box from sum1as a where a.name=rotatetable1.company and box_weight='box' and hsname='廢塑料';
update rotatetable1 set 廢塑料=weight from sum1as a where a.name=rotatetable1.company and box_weight='weight' and hsname='廢塑料';
::: :::
update rotatetable1 set 其它=box from sum1as a where a.name=rotatetable1.company and box_weight='box' and hsname='其它';
update rotatetable1 set 其它=weight from sum1as a where a.name=rotatetable1.company and box_weight='weight' and hsname='其它';
::: :::
update rotatetable1 set 合計=廢塑料+廢五金+廢鋼鐵+廢紙+廢有色+廢纖維+其它;

(所有涉及表的行列轉換均可按照這種方式實現。)

熱點內容
紅色物業競賽視頻腳本 發布:2025-02-01 07:39:56 瀏覽:715
我的世界領域伺服器 發布:2025-02-01 07:30:06 瀏覽:156
線性表有哪兩種存儲結構 發布:2025-02-01 07:30:04 瀏覽:216
坡向壓縮機 發布:2025-02-01 07:09:10 瀏覽:410
夏新手機初始密碼是什麼 發布:2025-02-01 06:58:23 瀏覽:790
ppt存儲路徑 發布:2025-02-01 06:55:06 瀏覽:115
aspx腳本 發布:2025-02-01 06:44:13 瀏覽:999
訪問策略更新 發布:2025-02-01 06:39:29 瀏覽:498
pythoneditplus 發布:2025-02-01 06:31:57 瀏覽:275
bmp轉png源碼 發布:2025-02-01 06:30:08 瀏覽:470