sql server中的存储过程如下:--该存储过程实现的功能:
--利用班级名称查询学年号
--查询结果类似于‘03-04’
CREATE PROCEDURE ws_xnh
@bjmc varchar(10)        --班级名称 
--*********************************************************
AS
declare @bjh varchar(10),        --班级号
             @xnh varchar(10)        --学年号
--*********************************************************
set @bjh = 
                 (select bjxx_bjh 
                   from bjxx
                   where bjxx_bjmc = @bjmc)
select DISTINCT LEFT(xqh_xqmc,5)
 from xqh
 where xqh_bjh = @bjh
GO帮帮忙!!

解决方案 »

  1.   

    create table xqh
    (xqh_bjh varchar(10),
     xqh_xqmc varchar(50)
     
    )create table bjxx
    (bjxx_bjh varchar(10),
     bjxx_bjmc varchar(50) 
    )
    insert into  bjxx values('9543120','计算机一班');
    insert into  bjxx values('9543117','计算机一班');
    insert into  bjxx values('9543129','烹调一班');
    insert into  bjxx values('9543117','计算机');insert into xqh values('9543117','计算机95级')
    insert into xqh values('9543120','计算机95级')
    insert into xqh values('9543129','计算机95级')
    CREATE OR REPLACE FUNCTION WS_XNH(BJMC VARCHAR2, XQH_XQNAME OUT VARCHAR2)
      RETURN NUMBER IS
      V_XQH_XQNAME VARCHAR2(40);
      REL          NUMBER;  BJH VARCHAR2(10); --班级号
      XNH VARCHAR2(10); --学年号BEGIN  SELECT BJXX_BJH INTO BJH FROM BJXX WHERE BJXX_BJMC = BJMC;
      IF SQL%NOTFOUND THEN
        RETURN - 1;
      END IF;  SELECT DISTINCT SUBSTR(XQH_XQMC, 1, 5)
        INTO V_XQH_XQNAME
        FROM XQH
       WHERE XQH_BJH = BJH;
      IF SQL%NOTFOUND THEN
        RETURN - 2;
      END IF;  XQH_XQNAME := V_XQH_XQNAME;
      RETURN(0);
    END WS_XNH;