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就可以隨便操作了,也可以貼到記事本...