急!急!,sql语句的写法!!!!!!!!!!!!!!!!!
SELECT *
FROM run_mal_record,run_mal_cause WHERE run_mal_cause.malacc_cause like '%' + run_mal_record.mal_cause + '%' ......
这个语句在ms sql server 是可以执行的,但是在oracle中就是不能运行了,如何修改??
注:run_mal_cause.malacc_cause 中的数据有:使用不合理,超负荷,违章操作,保养维护不善,操作不良,安装问题,原制造问题,原设计问题,这是所有的记录
run_mal_record.mal_cause 中的每条记录是以上run_mal_cause.malacc_cause的记录的不同组合e.g. 使用不合理/超负荷/违章操作/保养维护不善/操作不良/安装问题,原制造问题/原设计问题
问题点数:39、回复次数:8Top
1 楼xzou(亡狼补齿)回复于 2001-09-19 11:49:33 得分 1
SELECT *
FROM run_mal_record,run_mal_cause WHERE run_mal_cause.malacc_cause like '%' || run_mal_record.mal_cause || '%' ......
Top
2 楼nielinjie(学当活雷锋ing)回复于 2001-09-19 13:52:29 得分 1
楼上得很对Top
3 楼clwyf(芯片)回复于 2001-09-19 13:58:46 得分 1
SELECT *
FROM run_mal_record,run_mal_cause
WHERE run_mal_cause.malacc_cause like '%' and run_mal_record.mal_cause like '%' and ......Top
4 楼yuechun(加密狗)回复于 2001-09-19 14:01:24 得分 0
那么您能保证以后采用别的数据库后台后不改变前台的程序吗?
‘||’或许又要变成别的符号了
您说的方法我以前用了,但是只能是在oracle中Top
5 楼leeyoong(莫西)回复于 2001-09-19 14:45:08 得分 1
可以这样做:
SELECT *
FROM run_mal_record,run_mal_cause WHERE CHARINDEX(run_mal_record.mal_cause ,run_mal_cause.malacc_cause)>0
但不知道oracle中是否有CHARINDEX函数?Top
6 楼icevi(按钮工厂)回复于 2001-09-19 15:55:22 得分 34
你好象把run_mal_cause.malacc_cause和run_mal_record.mal_cause写反了。
改为:
select *
FROM run_mal_record,run_mal_cause WHERE run_mal_record.mal_cause like '%' + run_mal_cause.malacc_cause + '%'
我想知道一点,你为什么要这样设计数据库呢?
既然run_mal_record.mal_cause是用run_mal_cause.malacc_cause表中字段组合出来的,你不如加一个表专门指定这两个表的一对多的对应关系。这样就好做查询了。而且用文字来组合,又不好维护,可能还会有长度限制,没什么好处。
比如run_mal_cause中
使用不合理,超负荷,违章操作,保养维护不善,操作不良,安装问题,原制造问题,原设计问题
分别对应代码1,2,3,4,5,6,7,8
run_mal_record记录有:
1001 使用不合理/超负荷/违章操作/保养维护不善/操作不良/安装问题
1002 原制造问题/原设计问题
新加的表中记录就是这样的:
frecordid fcauseid
1001 1
1001 2
1001 3
1001 4
1001 5
1001 6
1002 7
1002 8
查询就好写了。
Top
7 楼qianby(宝贝)回复于 2001-09-19 16:13:17 得分 1
gzTop
8 楼yuechun(加密狗)回复于 2001-09-19 16:58:01 得分 0
我的数据库结构是不能再改写了,要是可以改写数据库结构 ,有很多的方法实现的,不过谢谢各位关注了!!!!!Top




