因为我用asp.net的DataList控件实现,所以需要这7个as出来的字段与DataList分别绑定
如下:
<%# DataBinder.Eval(Container.DataItem,"b.Type") %>
<%# DataBinder.Eval(Container.DataItem,"b.ImageUrl") %>
<%# DataBinder.Eval(Container.DataItem,"a.title1") %>
<%# DataBinder.Eval(Container.DataItem,"a.Content1") %>
<%# DataBinder.Eval(Container.DataItem,"a.title2") %>
<%# DataBinder.Eval(Container.DataItem,"a.title3") %>
<%# DataBinder.Eval(Container.DataItem,"a.title4") %>页面像这样:
--------------------------------------------------
  table2.Type
--------------------------------------------------
                    |  table1.Title1
                    |-----------------------------
                    |  table1.Content1
  table2.ImageUrl   |
                    |
                    |
---------------------------------------------------
  table1.Title2
---------------------------------------------------
  table1.Title3
---------------------------------------------------
  table1.Title4
---------------------------------------------------但怎么实现先不管,我现在只要用一SQL语句取出以上所说的7个元素

解决方案 »

  1.   

    上面 table1 就是a
         table2 就是b
      

  2.   

    hchxxzx(NET?摸到一点门槛) 请进来领分呀另外,在程序里调用您写的oracle数据库函数怎么调呀,或者提供关于这方面的资料我自己去看也行呀~~~
      

  3.   

    你的A表的Type和b表ID对应?
      

  4.   

    这个还是比较容易做的。使用rank函数,可以实现的。问题是,你的问题,我还是觉得混乱。赫赫。你的新闻类型表b的ID,type干什么用的。怎么和A关联的。你写的你的A表的Type和b表ID对应,是对的吗?
      

  5.   

    表a的Type(number)和表b的ID(number)对应啊rank函数是什么?
      

  6.   

    to:Croatia(Croatia) ( ) 
    -----------------------你知道在程序里调用oracle数据库函数怎么调么?或者提供关于这方面的资料我自己去看也行呀~~~
      

  7.   

    啊?就是和直接调用oracle本身的函数一样比如,我做了一个函数,funcGetName(id)select funcGetName(id) from .....就可以了。
    假如你是返回的游标,用recordset可以接受。暂时,我手头上没有资料。rank是oracle本身的一个函数。
      

  8.   

    select funcGetName(id) from .....------------------------------直接调用不行,报错:无效列名http://community.csdn.net/Expert/topic/3939/3939423.xml?temp=.4149744
    我的另一个贴子说的详细点,如果你有时间的话,帮忙看看吧~~~~
      

  9.   

    总算是可以了,LONG字段在单独求取的时候,可以求得出来,但在参与联合求取的时候,就报告"非法使用LONG字段",后来想了个办法,也做一个函数求取,其中还多有奥妙,如return VARCHAR2 is Result long此句,前面的varchar2如果改为long则仍出现前述错误,但改成varchar2后,可正常求取(但不知道会不会超过4000个字节后求取不出来?测了一下,可能在字节数超过4000时会出问题.所以最好还是把字段改为CLOB)
    SQL语句如下:假设newb是类型表,newa是新闻表
    SELECT  a.type,
        a.imageurl,
            f_gettitle(a.type,1) title1,
            f_getlong(a.type,1) content1,  
            f_gettitle(a.type,2) title2,
            f_gettitle(a.type,3) title3,
            f_gettitle(a.type,4) title4
    FROM newb a 写个函数来求取
    create or replace function f_gettitle(stype in varchar2, sno in NUMBER) return VARCHAR2 is
      Result varchar2(200);
    BEGIN       SELECT title
           INTO RESULT
           FROM 
           (
                SELECT rownum sid,a.title
                FROM newa a
                WHERE a.type = stype
                AND rownum <= sno
           )
           WHERE sid = sno;
      
      return(Result);
    end f_gettitle;//求取LONG字段值
    create or replace function f_gettitle(stype in varchar2, sno in NUMBER) return VARCHAR2 is
      Result long;
    BEGIN       SELECT title
           INTO RESULT
           FROM 
           (
                SELECT rownum sid,a.content
                FROM newa a
                WHERE a.type = stype
                AND rownum <= sno
           )
           WHERE sid = sno;
      
      return(Result);
    end f_gettitle;