‘壹’ sql中内容都为字符型的竖版表转横版,如何实现
Word默认为一节,而一节的页面格式是相同的,若想把一个WORD文件中的每一页随意设置成横版或是竖版,必须将其设置为单独一节,这样就可以单独设置了。
假设有一个10页文档,想让其中第3页为横板,设置步骤:
1、将光标放在第3的首位置,单击页面布局---->分隔符---->分节符---->下一页,如图所示;
2、将光标放在第3页的尾部,重复上面的操作上,使第3页成为单独一节;
3、光标放在第3页,单击页面布局---->纸张方向---->横向即可,如图所示。
‘贰’ SQL 竖表变横表,自适应的,谁能帮看看。
用sql本身难以实现。 你可以对生成的竖表(转成csv格式 或 txt 格式)文件,再用pascal 或 c 语言编制转换程序 进行后处理。
‘叁’ SQL 如何查询时 竖着的数据 横着显示
你这个是将纵表转换为横表,例如如下数据:
'wangming', 'shuxue', 100
'wangming', 'yuwen', 90
'wangming', 'yingyu', 140
可以使用如下语句处理:
select a.v_name,a.v_score shuxue,b.v_score yuwen,c.v_score yingyu from temp_1 a,temp_1 b,temp_1 c
where a.v_name=b.v_name
and a.v_name=c.v_name
and a.v_name='wangming'
and a.v_course='shuxue'
and b.v_course='yuwen'
and c.v_course='yingyu';
‘肆’ sql纵向数据变横向数据正负
.sql纵向数据变横向数据正负
SQL纵向数据变横向数据的正负取决于所使用的转换函数。一般来说,使用的转换函数会影响正肆氏桥负裂猛的结果。例如,使用PIVOT函数将纵向数据转换为横向数据时,结果可能是正值,也可能是核陪负值。
‘伍’ sql 里面怎么把竖表变成横表
select 姓名,sum(case when 科目='数学' then 分数 end) as 数学,sum(case when 科目='语文' then 分数 end) as 语文,sum(case when 科目='英语' then 分数 end) as 英语 from 表名
group by 姓名
‘陆’ 如何在sql 将查找出来的数据变成横向显示
您好,很高兴为您解答。
看几个实例。
select
max(casenamewhen'课桌式'then[count]else0end)as课桌式,
max(casenamewhen'分组式'then[count]else0end)as分组式,
....
from
tb
createtabletest([name]varchar(10),[count]int)
go
inserttest
select'课桌式',100unionall
select'分组式',360unionall
select'剧院式',200unionall
select'董事会',150unionall
select'U型',100unionall
select'宴会型',150
select*fromtest
declare@sqlvarchar(max)
select@sql=isnull(@sql+',','')+'max(casewhen[name]='''+[name]+'''then[count]end)as'''+[name]+''''
from
(select[name]fromtestgroupby[name])t
print@sql
exec('select'+@sql+'fromtest')
droptabletest
/*
(6row(s)affected)
namecount
---------------------
课桌式100
分组式360
剧院式200
董事会150
U型100
宴会型悔帆150
(6row(s)affected)
U型董事会分组式剧院式课桌昌前袜式宴会型
------------------------------------------------------------------
100150360200100耐激150
(1row(s)affected)
*/
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~O(∩_∩)O~
‘柒’ 如何通过sql将表中竖向数据转换成横向数据
行列转换等经典SQL语句
参考资料:http://blog.csdn.net/kiki113/archive/2009/04/24/4105929.aspx
1.--行列转换
原表: 姓名 科目 成绩
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 物理 82
李四 英语 90
李四 政治 70
王五 英语 90
转换后的表: 姓名 数学 物理 英语 语文 政治
李四 0 82 90 85 70
王五 0 0 90 0 0
张三 90 85 0 80 0
实例:
create table cj --创建表cj
(
ID Int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1
Name Varchar(50),
Subject Varchar(50),
Result Int,
primary key (ID) --定义ID为表cj的主键
);
--Truncate table cj
--Select * from cj
Insert into cj
Select '张三','语文',80 union all
Select '张三','数学',90 union all
Select '张三','物理',85 union all
Select '李四','语文',85 union all
Select '李四','物理',82 union all
Select '李四','英语',90 union all
Select '李四','政治',70 union all
Select '王五','英语',90
--行列转换
Declare @sql varchar(8000)
Set @sql = 'Select Name as 姓名'
Select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result else 0 end) ['+Subject+']'
from (select distinct Subject from cj) as cj --把所有唯一的科目的名称都列举出来
Select @sql = @sql+' from cj group by name'
Exec (@sql)
2. 行列转换--合并
原表: 班级 学号
1 1
1 2
1 3
2 1
2 2
3 1
转换后的表: 班级 学号
1 1,2,3
2 1,2
3 1
实例:
Create table ClassNo --创建表ClassNo
(
ID Int IDENTITY(1,1) not null, --创建列ID,并且每次新增一条记录就会加1
Class Varchar(50), --班级列
Number Varchar(50), --学号列
Primary Key(ID) --定义ID为表ClassNo的主键
);
--Truncate Table ClassNo
--Select * from ClassNo
Insert Into ClassNo
Select 1,1 Union all
Select 1,2 Union all
Select 1,3 Union all
Select 2,1 Union all
Select 2,2 Union all
Select 3,1
创建一个合并的函数
--Drop Function KFReturn
Create Function KFReturn(@Class Varchar(50))
Returns Varchar(8000)
as
Begin
Declare @str Varchar(8000)
Set @str = ''
Select @str = @str + cast(Number as Varchar(50)) + ',' from ClassNo Where Class = @Class
Set @str = SubString(@str,1,len(@str)-1)
Return(@str)
End
--调用自定义函数得到结果
Select Distinct Class,dbo.KFReturn(Class) From ClassNo
3:列转行
--Drop Table ColumnToRow
Create table ColumnToRow
(
ID Int IDENTITY(1,1) not null, --创建列ID,并且每次新增一条记录就会加1
a int,
b int,
c int,
d int,
e int,
f int,
g int,
h int,
Primary Key(ID) --定义ID为表ColumnToRow的主键
);
--Truncate Table ColumnToRow
--Select * from ColumnToRow
Insert Into ColumnToRow
Select 15,9,1,0,1,2,4,2 Union all
Select 22,34,44,5,6,7,8,7 Union all
Select 33,44,55,66,77,88,99,12
Declare @sql Varchar(8000)
Set @sql = ''
Select @sql = @sql + rtrim(name) + ' from ColumnToRow union all Select ' from SysColumns Where id = object_id('ColumnToRow')
Set @sql = SubString(@sql,1,len(@sql)-70)
--70的长度就是这个字符串'from ColumnToRow union all Select ID from ColumnToRow union all Select ',因为它会把ID这一列的值也算进去,所以要把它截掉
Exec ('Select ' + @sql + ' from ColumnToRow')
‘捌’ sql server 纵表转横表
如果单纯是你如上数据的话这样:
创建表:
createtablet
(idint,
orderidint,
prfnoint,
prfidvarchar(10));
insertintotvalues(16385,171202,1,'FB065_1');
insertintotvalues(16385,171202,2,'FB065_06');
insertintotvalues(16385,171202,3,'FB065_06');
insertintotvalues(16385,171202,4,'FB065_06');
insertintotvalues(16386,171202,1,'FB065_1');
insertintotvalues(16386,171202,2,'FB065_06');
insertintotvalues(16386,171202,3,'FB065_06');
insertintotvalues(16386,171202,4,'FB065_06');
执行:
selectid,orderid,
max(casewhenprfno=1thenprfidend)prfid1,
max(casewhenprfno=2thenprfidend)prfid2,
max(casewhenprfno=3thenprfidend)prfid3,
max(casewhenprfno=4thenprfidend)prfid4
fromtgroupbyid,orderid
结果:
如果需求复杂的话,就要改别的方法了。
‘玖’ SQL竖表转换为横表,跪求大侠帮忙!
建表及插入数据
createtablet(姓名varchar(10),课程varchar(10),分数int)
insertintotvalues('张三','语文',74)
insertintotvalues('张三','数学',83)
insertintotvalues('张三','物理',93)
insertintotvalues('李四','语文',74)
insertintotvalues('李四','数学',84)
insertintotvalues('李四','物理',94)
执行语句
select姓名,
'语文'课程1,sum(casewhen课程='语文'then分数else0end)成绩1,
'物理'课程2,sum(casewhen课程='物理'then分数else0end)成绩2,
'数学'课程3,sum(casewhen课程='数学'then分数else0end)成绩3
fromt
groupby姓名
运行结果
‘拾’ 请问Sql server如何把一个内连接的输出的表格横向显示
普通sql很难做,要用sqlserver存储过程,用游标循环shorename的表,然后用case when一个一个拼起来
比如游标里写
create table aa as select osid,osuser,ostime,sum(case when shopname=@shopname and then osnumber else 0 end) as @shopname
from aa, shopname where aa.osid=shopname.osid
这样表aa在循环中每次都加上一个新shopname字段,直到游标shopname循环完毕,思路就是这样,最后再写个delete语句,把aa表里osnumber=0删掉就可以了,因为它都是表连接时由于shopname不匹配产生的垃圾数据