--sql里面可以这按下面这样做create table table1(id1 int,d_name varchar(100))
insert into table1(id1,d_name) values(1,'张');
insert into table1(id1,d_name) values(2,'王');
insert into table1(id1,d_name) values(3,'李');create table table2(id2 int,bookname varchar(100),id1 int)
insert into table2(id2,bookname,id1) values(1,'大学英语',2);
insert into table2(id2,bookname,id1) values(2,'高数',2);
insert into table2(id2,bookname,id1) values(3,'邓小平理论',3);--函数根据table2的id1取关联表(table1)的结果字段(d_name)
create function f_getdnamebyid1(@id1 int) 
returns varchar(100)
as
begin
  declare @dname varchar(100)
  select @dname = d_name from table1 where id1 = @id1
  return @dname
end用函数
select id2,dbo.f_getdnamebyid1(id1) d_name,bookname from table2
1      王 大学英语
2      王 高数
3      李 邓小平理论 --------------------------create table table1(id1 number,d_name varchar2(100))
insert into table1(id1,d_name) values(1,'张');
insert into table1(id1,d_name) values(2,'王');
insert into table1(id1,d_name) values(3,'李');create table table2(id2 number,bookname varchar2(100),id1 number)
insert into table2(id2,bookname,id1) values(1,'大学英语',2);
insert into table2(id2,bookname,id1) values(2,'高数',2);
insert into table2(id2,bookname,id1) values(3,'邓小平理论',3);--函数根据table2的id1取关联表(table1)的结果字段(d_name)
create or replace function f1(indid in number) return varchar2  
as
  tmp_d_name varchar2(100);
begin
  select d_name into tmp_d_name from table1 where id1 = indid;
  result := tmp_d_name;
  return result;
exception
  WHEN OTHERS THEN
    result := 'wrong';
    return result;
end test2;问:可不可以像sql一样在某条查询语句里面用函数关联字段,取另一个表的关联的目的字段,在oracle里面怎样写,
并得到与sql上面相同的结果,(
当然在oracle里面用left join,where来写也能得到上面相同结果,但是代码看起不简洁,
我们在sql里面写很多函数,然后查询时根据函数来取目的字段,但现在oracle不知道怎么写了)
或者大家有什么好的简洁代码也可以,谢谢大家了!!!(不管上面oracle语法错误,oracle没测试,假设上面oracle函数是正确的,sql是通过的)