SQL把查詢出的列轉換成行,SQL把查詢出的一個列轉換成行

2023-01-19 02:35:40 字數 4360 閱讀 6264

1樓:匿名使用者

看這裡,比較詳細

sql 如何把一列的值轉換成一行顯示

2樓:匿名使用者

1、最原始的方法,利用 select....unionselect 欄位1 from 表名 where 條件 union select 欄位2 from 表名 where 條件 select 欄位3 from 表名 where 條件 ......

2、利用 sys_connect_by_path函式select sys_connect_by_path(欄位, '>') "path"

from 表名

start with 條件

connect by prior 條件;

3樓:

要使用你具體欄位來寫語句建議你參考:

4樓:匿名使用者

declare @sql varchar(1000)set @sql = ''

select @sql = @sql+ a + ','

from tb

select left(@sql,len(@sql)-1)

sql 查詢 **的轉換,將列轉換成行顯示

5樓:

select sn,sum(case when field_name='bl1_ver' then field_value end) bl1_ver,

sum(case when field_name='bl2' then field_value end) bl2,

sum(case when field_name='bl3' then field_value end) bl3

from 表名

group by sn

sql 查詢出一列內容,如何讓它成一行顯示。

6樓:

--參考

select stuff((select ','+ 欄位名稱 from 表名稱 for xml path('')),1,1,'');

7樓:我是醜九怪

--case when  可以進行橫列轉換

sqlserver怎麼把查詢結果的行變成列?

8樓:清茶稀飯

sqlserver自帶得有一個stuff函式,可以結合group by 和distinct使用,可以實現行變列

sql中一對多關係的查詢結果的多行轉換成一行多列

9樓:匿名使用者

1、建立測試表,

create table test_fee(userid number, feeid number, fee number);

2、插入測試資料

insert into test_fee values(1,1001,80);

insert into test_fee values(1,1002,70);

insert into test_fee values(1,1003,90);

insert into test_fee values(1,1004,60);

insert into test_fee values(2,1001,99);

insert into test_fee values(2,1002,66);

insert into test_fee values(2,1001,55);

3、查詢表中所有記錄,select t.*, rowid from test_fee t,

4、編寫sql,按userid彙總,根據不同的feeid,進行行轉列彙總,

select userid,

sum(case when feeid = 1001 then fee else 0 end) as fee_1001,

sum(case when feeid = 1002 then fee else 0 end) as fee_1002,

sum(case when feeid = 1003 then fee else 0 end) as fee_1003,

sum(case when feeid = 1004 then fee else 0 end) as fee_1004

from test_fee t

group by userid

10樓:匿名使用者

--用動態sql實現行轉列。因用到了row_number,只適用於sql server 2005及以上版本

--測試資料

with

[user](id,name,roleid)

as(select 1,'bobo','r1' union all

select 2,'coco','r1' union all

select 3,'dodo','r1' union all

select 4,'eoeo','r2' union all

select 5,'fofo','r2'),

[role](id,name)

as(select 'r1','admin' union all

select 'r2','user')

--兩表聯合查詢後暫存入臨時表

select b.id roleid,b.name rolename,a.

name username,row_number() over (partition by b.id order by a.id) seq

into #t

from [user] a

inner join [role] b on a.roleid=b.id;

--拼接動態sql

declare @sql varchar(max);

set @sql='';

select @sql=@sql+

',max(case seq when '+cast(tt.seq as varchar)+' then username else '''' end) user'+cast(tt.seq as varchar)

from (select distinct seq from #t) tt

order by seq;

set @sql='select rolename'+@sql+' from #t group by roleid,rolename';

--列印動態sql

select @sql;

--執行動態sql

exec(@sql);

--刪除臨時表

drop table #t;

生成的動態sql為:

select rolename,

max(case seq when 1 then username else '' end) user1,

max(case seq when 2 then username else '' end) user2,

max(case seq when 3 then username else '' end) user3

from #t group by roleid,rolename

最終查詢結果為:

11樓:若水大大

select role.name, user.name from role left join [user] on role.id = user.roleid;

12樓:收費一

select 需要的列 form role a

left join user b on a.id = b.roleid

13樓:匿名使用者

這個需求好奇怪呀.

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

如果有sql能寫出來你需要的那樣查詢結果, 那不是在向r1新增一條記錄就有1列了呀.這樣查出來怎麼在程式層面取值啊.

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

我感覺 應該是你吧需求理解錯了吧

怎麼樣將sql查詢出來的多行資料變成一行多列

14樓:vex機器人

sql查詢結果如果只有一條,就會顯示一行,行數代表了結果數,列數的多少取決於你所查詢的欄位數。

怎麼把excel的公曆轉換成農曆

dim weekname 7 monthadd 11 nonglidata 99 tiangan 9 dizhi 11 shuxiang 11 dayname 30 monname 12 dim curtime,curyear,curmonth,curday,curweekday dim gongl...

怎樣把Excel中的文件轉換成word

操作如下 1 可以右鍵點選桌面左下角的windows徽標鍵,然後在彈出選單中選擇 設定 選單項。2 接下來就會開啟windows設定視窗,點選視窗中的 應用 圖示。3 在開啟的windows應用和功能視窗中,點選 應用和功能 選單項,然後在右側是的視窗中找到 程式和功能 快捷連結。4 這時就會開啟w...

怎樣把PDF格式的小說轉換成的,怎樣把PDF格式的小說轉換成TXT的

怎麼把pdf格式轉為txt格式?如何將pdf轉txt?我們來看一下 搜尋pdf轉word 軟體。或者字型識別軟體ocr。如果pdf原來就是word等電子文件轉換過去的,成功率較高。如果是掃描版pdf則成功率較低。可以從網上載一個pdf轉word的小軟體,轉成word就可以隨便操作了,也可以貼到記事本...