场景:
基础知识查询
环境:
Oracle Database 11g; PL/SQL Developer
1.行转列sql
SELECT SENSOR_ID,
DATA_DATE,
DATA_TYPE,
REGION,
S,
COLUMN_S,
(SUBSTR(S, 2, 2) - 1) * 60 / (24 * 60) + TRUNC(SYSDATE-1) DATA_TIME
FROM SENSOR_COLLECT_DATA UNPIVOT(COLUMN_S FOR S IN(S1,
S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24 ));
2.行数据查询截图
3.行转列后查询数据截图

4.截取时间sql
一天24小时,数据S1到S24每1个小时截取时间
(SUBSTR(S, 2, 2) - 1) * 60 / (24 * 60) + TRUNC(SYSDATE-1)
5.附,建表语句.
create table SENSOR_COLLECT_DATA
(
sensor_id NUMBER(16) not null,
data_date DATE not null,
data_type NUMBER(2) not null,
region VARCHAR2(16) not null,
s1 NUMBER(6,3),
s2 NUMBER(6,3),
s3 NUMBER(6,3),
s4 NUMBER(6,3),
s5 NUMBER(6,3),
s6 NUMBER(6,3),
s7 NUMBER(6,3),
s8 NUMBER(6,3),
s9 NUMBER(6,3),
s10 NUMBER(6,3),
s11 NUMBER(6,3),
s12 NUMBER(6,3),
s13 NUMBER(6,3),
s14 NUMBER(6,3),
s15 NUMBER(6,3),
s16 NUMBER(6,3),
s17 NUMBER(6,3),
s18 NUMBER(6,3),
s19 NUMBER(6,3),
s20 NUMBER(6,3),
s21 NUMBER(6,3),
s22 NUMBER(6,3),
s23 NUMBER(6,3),
s24 NUMBER(6,3)
);
以上,感谢.
本文介绍在Oracle Database 11g中使用PL/SQL Developer进行数据转换的方法,详细展示了如何将行数据转化为列数据,并提供了一个具体实例。同时,文中还分享了从数据字段中截取出精确时间的SQL语句,以及创建表的完整语句。
1595

被折叠的 条评论
为什么被折叠?



