当前位置:首页 » 编程语言 » mysql行转列sql函数

mysql行转列sql函数

发布时间: 2023-06-08 14:22:29

sql中几种行变列的情况

有两种方式:

sql行列转换

1 case when

2 pivot 函数

请试一试,如有疑问,及时沟通!

❷ SQL 行列互换(有多列数据,只需其中的两列转成行),求大神指导一下

这个问题用Excel做来秒出,如果数据量不是很大可以考虑用excel来做。

❸ sql语句行转列 怎么转啊

--声明变量

declare@sqlvarchar(1000),@num_dataint,@num_allvarchar(2000),@num_numint,@table_sqlvarchar(2000)

set@num_num=0

--判断并创建表

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[records]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[records]

createtablerecords(

[id]int,

[name]varchar(50),

[sex]varchar(10),

[num]int

)

--插入数据

insertintorecordsvalues(1,'tom','男',2)

insertintorecordsvalues(1,'tom','男',3)

insertintorecordsvalues(1,'tom','男',4)

insertintorecordsvalues(1,'tom','男',5)

--全选表中数据

select*fromrecords

--全选num列数据

selectnumas'数据'fromrecords

--释放游标

deallocateselect_num

--为‘selectnumfromrecords’建立游标

declareselect_numscrollcursorforselectnumas'shuju'fromrecords

--打开游标

openselect_num

--获得第一条数据

fetchnextfromselect_numinto@num_data

set@num_all=convert(varchar,@num_data)+','

set@num_num=@num_num+1;

--如果获取成功,继续获得数据

while@@fetch_status=0

begin

fetchnextfromselect_numinto@num_data

set@num_num=@num_num+1;

set@num_all=@num_all+convert(varchar,@num_data)+','

end

--关闭游标

closeselect_num

print@num_num

--set@num_num=@num_num-1;

declare@iint

set@i=1

print@num_num

print@i

set@table_sql='createtablenumall(idint,namevarchar(50),sexvarchar(10)'

print@table_sql

while@num_num>=1

begin

set@table_sql=@table_sql+',num'+convert(varchar,@i)+'int'

set@num_num=@num_num-1;

set@i=@i+1

end

set@table_sql=@table_sql+')'

print@table_sql

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[numall]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[numall]

exec(@table_sql)

declare@insert_sqlvarchar(2000)

set@insert_sql='insertintonumallvalues(1,'+'''tom'','+'''男'''

print@insert_sql

openselect_num

--获得第一条数据

fetchnextfromselect_numinto@num_data

set@insert_sql=@insert_sql+','+convert(varchar,@num_data)

--如果获取成功,继续获得数据

while@@fetch_status=0

begin

fetchnextfromselect_numinto@num_data

set@insert_sql=@insert_sql+','+convert(varchar,@num_data)

end

set@insert_sql=@insert_sql+')'

print@insert_sql

exec(@insert_sql)

--insertintonumallvalues(1,'tom','男',2,3,4,5,5)

select*fromnumall

试试吧,数据虽然有点出入,但已经说明问题了!!!

❹ sql怎样将行的值变为列,,,,

方法/步骤

  • 首先我们建立一张表,名为RToC,各个字段的设计如下图,分别是name,course,score,表示姓名,成绩与分数,如图所示。

  • 通过以上几个步骤,我们就可以轻松的实现行列转换了。同样,我们如果要把列转换成行, 应该怎么做呢?同样我们可以采用unpivot函数轻松实现。

热点内容
python集合运算符 发布:2025-02-14 03:06:18 浏览:205
pic编译软件 发布:2025-02-14 03:01:04 浏览:984
反编译在编译 发布:2025-02-14 02:55:36 浏览:418
python打印对象 发布:2025-02-14 02:51:20 浏览:573
QRM算法 发布:2025-02-14 02:45:19 浏览:266
c语言打印结构体 发布:2025-02-14 02:42:28 浏览:141
编译技术实验一 发布:2025-02-14 02:28:24 浏览:648
编程手机入门 发布:2025-02-14 02:27:40 浏览:734
局域网视频android 发布:2025-02-14 02:23:56 浏览:424
麒麟系统如何安装安卓程序 发布:2025-02-14 02:07:21 浏览:400