oraclesql行转列
‘壹’ oracle数据库里面如何把一行数据转化为列显示
可用union all来实现。
如test表中数据如下:
‘贰’ Oracle 数据库行转列
createtableA(名称varchar2(10),"1月"varchar2(10),"2月"varchar2(10),"3月"varchar2(10),"4月"varchar2(10))
insertintoAvalues('薯仔',50,60,70,80);
insertintoAvalues('白菜',150,160,170,180);
commit;
select*fromA;
select*from(
select名称,'1月'月份,"1月"值fromA
unionall
select名称,'2月'月份,"2月"值fromA
unionall
select名称,'3月'月份,"3月"值fromA
unionall
select名称,'4月'月份,"4月"值fromA)
where名称='薯仔'
结果:
‘叁’ ORAClE sql如何实现行转列
如果“站名”、“条码”、“时间”都是一样的话,可以这么写:
with
t_temp as (select row_number() over (partition by station_name order by param_name asc) id, t.* from t),
t_temp1 as (select * from t_temp where id = 1),
t_temp2 as (select * from t_temp where id = 2),
t_temp3 as (select * from t_temp where id = 3)
select '站名' col1, '条码' col2, t_temp1.参数名 col3, t_temp2.参数名 col4, t_temp3.参数名 col5, '时间' col6
from t_temp1, t_temp2, t_temp3
where t_temp1.站名 = t_temp2.站名
and t_temp2.站名 = t_temp3.站名
union all
select t_temp1.站名, t_temp1.条码, to_char(t_temp1.数值), to_char(t_temp2.数值), to_char(t_temp3.数值), to_char(t_temp1.时间)
from t_temp1, t_temp2, t_temp3
where t_temp1.站名 = t_temp2.站名
and t_temp2.站名 = t_temp3.站名
‘肆’ oracle/sql/toad语句怎么写,行转列
select 姓名,地址, wmsys.WM_CONCAT(VALUE1),max(电话) 编号 from 表A GROUP BY 姓名,地址
看max(电话)
‘伍’ oracle 如何将 行转换为列 (具体如下,求sql)
WITHAAS(SELECTID_F,LINE_F,STAGE_F,UNITSTAGE_F,CAST(CHILDSTAGE_FASVARCHAR(100))ASCHILDSTAGE_F,PARENTID_FFROM表名WHEREPARENTID_FISNULL
UNIONALL
SELECT表名.ID_F,表名.LINE_F,表名.STAGE_F,表名.UNITSTAGE_F,CAST(A.CHILDSTAGE_F+表名.CHILDSTAGE_FASVARCHAR(100))ASCHILDSTAGE_F,表名.PARENTID_F
FROM表名JOINAON表名.PARENTID_F=A.ID_F)
SELECTLINE_F,STAGE_F,UNITSTAGE_F,CHILDSTAGE_F
FROMA
WHEREPARENTID_FISNOTNULL
‘陆’ oracle行转列sql怎么写
统计数据一般需要行专列都是把原始数据用SQL写入临时表,第一行写入临时表第一个字段,第二行写入临时表第二个字段....,然后再从临时表查询已经转为列的数据。
‘柒’ oracle行转列sql怎么写
行转列的准则就是通过主键进行分组,之后对行其它字段加上sum()、max()、count()函数,里边用decode()这类函数进行处理,总之分组不要用到他就成。
‘捌’ oracle数据库关于把表的行变成列
姓名 数学 语文 姓名 张飞 赵云 庞统
张飞 60 61 数学 60 80 99
赵云 80 85 变成 语文 61 85 80
庞统 99 80
而且第一行为列名,不是表中的数据,这样的话
也就是第一个表下面三行的数据,变成第二个表下面两行的数据
这样还是可以的
‘玖’ Oracle 行转列,逗号分隔
selectwm_concat(t.operatorid)from表t