数据库表如下:
t1
id varchar2(10) not null
ksrq date
主键:id
t2
id varchar2(10) not null
yksrq varchar2(4) not null
主键:id,yksrq
实际情况下:
t1中的ksrq可能是null,t2中的同一个id可以有多个yksrq,yksrq的值为4位年份如'2002','2001'等
需要建立视图v1:
v1中含有:id和ksrq两个字段
首选当t1中的ksrq不是null时,v1中的id,ksrq就是t1的对应内容,
当t1中的ksrq是null时,v1中的id,ksrq为:t2中的id,to_date('max(yksrq)-12-01','yyyy-mm-dd')请各位帮帮忙!!!!谢谢,比较着急,在线等候!
t1
id varchar2(10) not null
ksrq date
主键:id
t2
id varchar2(10) not null
yksrq varchar2(4) not null
主键:id,yksrq
实际情况下:
t1中的ksrq可能是null,t2中的同一个id可以有多个yksrq,yksrq的值为4位年份如'2002','2001'等
需要建立视图v1:
v1中含有:id和ksrq两个字段
首选当t1中的ksrq不是null时,v1中的id,ksrq就是t1的对应内容,
当t1中的ksrq是null时,v1中的id,ksrq为:t2中的id,to_date('max(yksrq)-12-01','yyyy-mm-dd')请各位帮帮忙!!!!谢谢,比较着急,在线等候!
解决方案 »
- iSQL*Plus command问题
- oracle自动备份及自动删除问题
- oracle11g,安装失败,提示找不到文件,模板General_Purpose.dbc不存在等。
- 求一个存储过程的编写,可能有点难度
- 请教大家一个问题感觉很诡异
- oracle exp/imp 无法解析指定的连接标识符
- 这个SQL语句怎么写啊?
- 请问我的电脑别人帮我装好了 oracle 本且可以运行。。能而昨天我重新启动了服务器。却不能访问数据库,请问我应该怎样做?
- 这个问题真是难倒我了???
- ***想学用点Oracle,请教几个初级问题,Help Me!***
- 欢迎加入oracle讨论群,绝对有效,群号1617315,不用验证,加入就行
- 经验共享:利用SQLPLUS和SQL LODER移行只包含有字符串和数字的数据库表
union
select t1.id, to_date('max(yksrq)-12-01','yyyy-mm-dd') from t1,t2 where ksrq is null and t1.id=t2.id
union
select t1.id,t2._date('max(yksrq)-12-01','yyyy-mm-dd') from t1,t2
where t1.id=t2.id and t1.ksrq is null
假如你要的是内连接:
select t1.id,(
case when t1.ksrq is not null then t1.ksrq
when t1.ksrq is null then to_date(t3.ksrq||'-12-01','yyyy-mm-dd')
end) ksrq
from t1,(select id,max(yksrq) ksrq from t2 group by id) t3 where t1.id=t3.id
/
select * from t1 where ksrq is not null
union
select t2.id,to_date('max(t2.yksrq)-12-01','yyyy-mm-dd') from t1,t2
where t1.id is null
and t1.id=t2.id;