《oracle view视图创建》由会员分享,可在线阅读,更多相关《oracle view视图创建(3页珍藏版)》请在金锄头文库上搜索。
1、一:前提条件:一:前提条件: 在 oracle 数据库中已建立两张表 rt_issuesect 和 roadstate,表结构如下: 高架状态表结构 rt_issuesect:列名列名数据类型数据类型描述描述为空为空默认值默认值键值类键值类 型型FSTR_ISSUESECTIDVARCHAR(20 )发布段编号NPKFDT_TIMEDATETIME时间 YFSTR_ALGOSTATEVARCHAR(10 )算法交通状态YFSTR_CFMSTATEVARCHAR(10 )发布状态YFSTR_USERIDVARCHAR(20 )用户编号YFSTR_CMFTYPEVARCHAR(10 )确认方式 a
2、uto/manualY注:只取发布段编号、时间、算法交通状态。模拟数据如下:地面交通状态 roadstate:列名列名数据类型数据类型描述描述为空为空默认值默认值键值类键值类 型型ROADNONUMBER路段编号YSTATEVARCHAR(10 )状态:1-拥堵、2-拥挤、3-畅通YUPDATETIMEDATE更新时间Y模拟数据:二:创建视图二:创建视图 newview 1 创建视图命令。由于两个表中的 FSTR_ISSUESECTID 字段和 ROADNO 字段类型不一致,需进行类型转换。这里用 cast 函数,将 number 类型转换为 varchar 类型。Sql 语句:create
3、view newview as (select fstr_issuesectid as ID , fstr_algostate as state from rt_issuesect) Union all (select cast(ROADNO as varchar2(20) as ID, roadstate.state from roadstate);运行命令,得到查询结果如下:2将 1,2,3 统一为 jam、crowd、free。用 Replace 函数实现。Sql:select ID,replace( replace( (replace(newview.state,1,jam) ,2,c
4、rowd),3,free)as state from newview实现结果:3将 state 字段的值全部统一为小写。 lower()函数实现,在 2 中的命令中添加该函数。 Sql: select ID, lower( replace( replace( (replace(newview.state,1,jam) ,2,crowd),3,free) ) as state from newview实现结果:三、可以将上面的命令用一句 sql 命令实现:create view newview as(select fstr_issuesectid as ID,lower(replace( replace( (replace(fstr_algostate,1,jam) ,2,crowd),3,free) as state from rt_issuesect)Union all( select cast(ROADNO as varchar2(20) as ID,lower(replace( replace( (replace(roadstate.state,1,jam) ,2,crowd),3,free) as state from roadstate)实现结果: