当前位置:首页 » 编程语言 » sql查询结果列变行
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql查询结果列变行

发布时间: 2022-09-02 14:29:40

‘壹’ sql语句: 多表查询结果列转行(并分组)

select t1.AUTOID,t2.AUTOID,t2.KEYWORD_EN from TAB_INFORMATION_KEYWORD t1
join TAB_KEYWORD_DICTIONARY t2 on t1.AUTOID = t2.AUTOID
我用的是MSSQL的内部连接,我没用例子实践过,希望这对你有点提示.大家一起学习

‘贰’ SQL查询结果列转行

你这个结果是什么意思,这也不是列转行吧

‘叁’ 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 合计=废塑料+废五金+废钢铁+废纸+废有色+废纤维+其它;

(所有涉及表的行列转换均可按照这种方式实现。)

‘肆’ SQL 怎样将查询出某列的多行数据,变为一行显示 通过SQL语句查询出结果 AutoID cT

你好,你看看参考一下。

DECLARE@tTABLE(idint,valuevarchar(10))
INSERT@tSELECT1,'出国'
UNIONALLSELECT2,'回国'

SELECT[values]=STUFF((REPLACE(REPLACE((SELECTvalueFROM@tFORXMLPATH('')),'<value>',','),'</value>','')),1,1,'')

‘伍’ sql 查询出一列内容,如何让它成一行显示。

进行行转列下面是相关语法等

PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现
PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P
注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性->选项->兼容级别改为 90 )
SQL2008 中可以直接使用
完整语法:

table_source

PIVOT(

聚合函数(value_column)

FOR pivot_column

IN(<column_list>)

)

View Code
UNPIVOT 用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现

完整语法:

table_source

UNPIVOT(

value_column

FOR pivot_column

IN(<column_list>)

)

‘陆’ 怎么样将sql查询出来的多行数据变成一行多

怎么样将sql查询出来的多行数据变成一行多
sql查询结果如果只有一条,就会显示一行,行数代表了结果数,列数的多少取决于你所查询的字段数。

‘柒’ sql语句列转行

我整理的行转列的问题:

--创建tb表
createtabletb(姓名varchar(10),课程varchar(10),分数int)
insertintotbvalues('张三','语文',74)
insertintotbvalues('张三','数学',83)
insertintotbvalues('张三','物理',93)
insertintotbvalues('李四','语文',74)
insertintotbvalues('李四','数学',84)
insertintotbvalues('李四','物理',94)
go

select*Fromtb

--SQLSERVER2000静态行转列
select姓名as姓名,
max(case课程when'语文'then分数elsenullend)语文,
max(case课程when'数学'then分数elsenullend)数学,
max(case课程when'物理'then分数elsenullend)物理
fromtb
groupby姓名

--SQLSERVER2000动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)
declare@sqlvarchar(8000)
set@sql='select姓名'
select@sql=@sql+',max(case课程when'''+课程+'''then分数else0end)['+课程+']'
from(selectdistinct课程fromtb)asa
set@sql=@sql+'fromtbgroupby姓名'
exec(@sql)

--SQLSERVER2005静态SQL。
select*from(select*fromtb)apivot(max(分数)for课程in(语文,数学,物理))b

--SQLSERVER2005动态SQL。
declare@sqlvarchar(8000)
select@sql=isnull(@sql+'],[','')+课程fromtbgroupby课程
set@sql='['+@sql+']'
exec('select*from(select*fromtb)apivot(max(分数)for课程in('+@sql+'))b')

希望对你的学习有帮助。

‘捌’ 如何把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

‘玖’ SQL 怎么将列改为行显示

姓名 课程 分数

张三 语文 74

张三 数学 83

张三 物理 93

李四 语文 74

李四 数学 84

李四 物理 94

姓名 语文 数学 物理

李四 74 84 94

张三 74 83 93

select 姓名 as 姓名 ,

max( case 课程 when '语文' then 分数 else 0 end) 语文,

max( case 课程 when '数学' then 分数 else 0 end) 数学,

max( case 课程 when '物理' then 分数 else 0 end) 物理

from tb

group by 姓名
参照写一下

‘拾’ 怎么sql语句实现把查询结果的一列并为一行显示

光靠
SQL语句
是办不到的。因为一条SQL你查询的时候默认的就是返回的一个表格的形式,
如果想要得到你要的效果的话当然程序里面是很容易办到的,
但是如果你是只靠SQL来完成的话那么你就要写个简单的
存储过程
了这样就能满足你的条件了