oracle 自定义函数

CREATE TABLE STUDENT( --创建学生表
  ID NUMBER(10) PRIMARY KEY,   --主键ID
  SNAME VARCHAR2(20),
  CLASSNAME VARCHAR2(20) --班级
);

INSERT INTO STUDENT VALUES(1,'Tom',‘SVSE’);
INSERT INTO STUDENT VALUES(2,'Jack','GIS');
INSERT INTO STUDENT VALUES(3,'Bay','3G');
INSERT INTO STUDENT VALUES(4,'John','SVSE');
INSERT INTO STUDENT VALUES(5,'Dld','3G');


--创建函数  返回3G班的总人数

CREATE OR REPLACE FUNCTION FUN_NUM
  (IN_CNAME IN CLASSTAB.CNAME%TYPE)  --函数接收的参数
RETURN NUMBER   每个函数必须返回一个值
  AS   
    OUT_NUM NUMBER;  --定义返回的变量  out_num接收查询出来的值
BEGIN
  IF IN_CNAME ='3G' THEN
      SELECT COUNT(CNAME) INTO OUT_NUM FROM STUDENT WHERE CNAME='3G';
    ELSIF IN_CNAME='SVSE' THEN
      SELECT COUNT(CNAME) INTO OUT_NUM FROM STUDENT WHERE CNAME='SVSE';
    ELSE IN_CNAME = 'GIS' THEN
      SELECT COUNT(CNAME) INTO OUT_NUM FROM STUDENT WHERE CNAME='GIS';
  END IF;  --结束条件
RETURN OUT_NUM; 将值返回出去
END FUN_NUM;--结束函数
--调用函数
SELECT DISTINCT FUN_NUM('3G') AS 人数 from STUDENT;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值