oracle自定义函数如何转成mysql函数

问题描述

oracle自定义函数如何转成mysql函数

这是oracle自定义的函数,怎么把他转成mysql的
create or replace function fun_return_zjxl(in_taskId varchar2,
in_work_no varchar2)
return varchar2 is
v_sum number(10);--质检平均完成量
v_num NUMBER(10);--质检个人完成量
v_qualitied_cnt NUMBER(10);
v_result varchar2(20);--0异常,1高于平均值,2低于平均值
begin
v_result:=0;
select (SELECT count(*) FROM ZJ_SCORE ZS WHERE ZS.TASK_ID=in_taskId and zs.status=3)/(select count(zut.user_id) from zj_user_task zut where zut.task_id=in_taskId) into v_sum from dual ;
SELECT count(zs.id) into v_num FROM ZJ_SCORE ZS WHERE ZS.TASK_ID=in_taskId and zs.status=3 and zs.work_no=in_work_no;
if(v_num>=v_sum) then
v_result:=1;
else
v_result:=2;
end if;
return(v_result);
end fun_return_zjxl;

解决方案

mysql自定义函数
mysql 自定义函数
MySQL 自定义函数

解决方案二:

oracle与sql基础语法其实差不多
无非就是一些基础语法问题 比如赋值的时候 oracle需要:= 而sql只要直接=号就可以了

create function fun_return_zjxl(in_taskId varchar2,
in_work_no varchar2)
return varchar2 is
v_sum number(10);--质检平均完成量
v_num int--质检个人完成量
v_qualitied_cnt int
v_result varchar(20);--0异常,1高于平均值,2低于平均值
begin
set v_result=0;
select (SELECT count(*) FROM ZJ_SCORE ZS WHERE ZS.TASK_ID=in_taskId and zs.status=3)/(select count(zut.user_id)
from zj_user_task zut where zut.task_id=in_taskId) into v_sum from dual ;
SELECT count(zs.id) into v_num FROM ZJ_SCORE ZS WHERE ZS.TASK_ID=in_taskId and zs.status=3 and zs.work_no=in_work_no;
if(v_num>=v_sum)
v_result:=1;
else
v_result:=2;
return(v_result);
end


你试下这个

时间: 2024-11-03 01:43:57

oracle自定义函数如何转成mysql函数的相关文章

oracle百分比查询怎么改写成mysql语句?

问题描述 select nir.inqtitleid,nii.itemcontent ,count(*) counts,round(RATIO_TO_REPORT(count(*)) over()*100,2)||'%' as percentfrom news_inquiry_result nir,news_inquiry_item nii where nir.inqitemid=nii.id and nii.isdelete=1 and nir.inqtitleid=1GROUP BY nir

spring配置ibatis oracle数据库改成mysql数据库遇到数据库方言问题

问题描述 spring配置ibatisoracle数据库改成mysql数据库遇到数据库方言问题<!--spring配置ibatis--><beanid="sqlMapClient"class="org.framework.ibatis.spring.SqlMapClientFactoryBean"><!--Mysql,Sqlserver通用ibatis配置文件-->propertyname="configLocation

oracle函数和存数过程转成mysql

问题描述 oracle函数和存数过程转成mysql create or replace function public_f_get_bsc012 ( v_id in varchar2 ) return varchar2 as v_temp varchar2(200); begin select bsc012 into v_temp from sc05 where bsc010=v_id; return v_temp; exception when others then return ''; e

存储过程的转换-将Oracle函数转成mysql的函数,只要语义通过就行,谢谢大家

问题描述 将Oracle函数转成mysql的函数,只要语义通过就行,谢谢大家 FUNCTION createRotationStatement(p_project IN varchar2 DEFAULT NULL, p_whse IN varchar2 DEFAULT NULL, p_ower IN varchar2 DEFAULT NULL, p_outbkey IN varchar2 DEFAULT NULL, p_rowno IN varchar2 DEFAULT NULL ) RETUR

Oracle自定义聚集函数

自定义聚集函数接口简介 Oracle提供了很多预定义好的聚集函数,比如Max(), Sum(), AVG(), 但是这些预定义的聚集函数基本上都是适应于标量数据(scalar data), 对于复杂的数据类型,比如说用户自定义的Object type, Clob等, 是不支持的. 但是,幸运的是, 用户可以通过实现Oracle的Extensibility Framework中的ODCIAggregate interface来创建自定义聚集函数,而且自定义的聚集函数跟内建的聚集函数用法上没有差别.

oracle 函数 WMSYS.WM_CONCAT 的用法 与 mysql 函数GROUP_CONCAT的用法

1.oracle函数 WMSYS.WM_CONCAT的使用 如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可. 查询语句需要配合使用group by select aa,wmsys.wm_concat(t1.name) from ( select t.name,to_char(t.createdate,'yyyy-mm-dd') aa from td_user t where t.td_conference_id = 3218 and t.status = 1 a

oracle自定义函数的问题,求助大神啊

问题描述 oracle自定义函数的问题,求助大神啊 在oracle中定义一个函数,用来实现从身份证号中提取出生日期并将提取结果保存到指定表中.提示:提前创建一个至少包含(身份证 varchar2,出生日期 date)的二维表 小白初学oracle,这个问题做了一下午还没弄明白,各路大神给指点一下啊 解决方案 oracle自定义函数oracle 自定义函数oracle 自定义函数入门 解决方案二: 例:表1, 身份证:xxxxxx20150810xxxx ,求出生日期update 表1 set 出

oracle 自定义函数返回一个自定义整数列,如何在下一个自定义函数中,调用上一个函数

问题描述 oracle 自定义函数返回一个自定义整数列,如何在下一个自定义函数中,调用上一个函数 ---自定义类型 create or replace type t_int is table of integer -- Create table create table TESTFUNCTION ( oid INTEGER, result INTEGER ) tablespace USERS pctfree 10 initrans 1 maxtrans 255; -- Create table

oracle start with 改成mysql

问题描述 oracle start with 改成mysql SELECT t.* FROM (SELECT DISTINCT (sm.menu_id), sm.up_menu_id, sm.menu_name, sm.menu_method, sm.leaf, sm.VALID_FLAG FROM sys_menu sm, sys_role_menu srm, sys_role sr, sys_user_role sur WHERE sm.menu_id = srm.menu_id AND s