Oracle 11g:登台表

时间:2015-06-08 12:17:58

标签: sql plsql oracle11g oracle-sqldeveloper

我需要Oracle 11g命令来创建登台表。

table: Streets
Input field: Name 
output fields: Streets_Prefix
               Streets_Name
               Streets_Suffix

来自前端应用程序的最终用户仅为“街道”表的“名称”字段填写信息:

  

“AVE Mandela road South”。

但是在同一个表“Streets”中,其他字段需要从“Name”字段中获取解析数据:

Streets_Prefix : AVE

Streets_Name : Mandela road

Streets_Suffix : South

所以这里的输入和目标表是相同的“街道”,但输入和目标字段是不同的所以我需要命令创建临时表,我可以在其中解析“名称”字段并更新“Streets_Prefix”,“Streets_Name”和“Streets_Suffix”。

1 个答案:

答案 0 :(得分:1)

您可以使用以下查询来获取从Name表的STREETS列填充的Streets_Prefix,Streets_Name,Streets_Suffix

select 
     substr(name, 0, instr(name,' ',1)-1) 
     as Streets_Prefix 
from STREETS  ;


select 
     substr(name, instr(name, ' ')+1,instr(name, ' ', -1, 1) - instr(name, ' ') - 1)
      as Streets_Name 
from STREETS  ;


select 
     substr(name, instr(name,' ',-1)+1) 
     as Streets_suffix
from STREETS  ;

输出:

STREETS_PREFIX

AVE
明星
ZEBRA

STREETS_NAME

曼德拉路 班加罗尔路 交叉道路

STREETS_SUFFIX



create table STREETS  ( name varchar2(200)); --Considering you want only one column

供进一步参考: CREATE TABLE