为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:8 【操作系统】: 【CPU】: 【问题描述】*:迁移了Mysql的储存过程到达梦,预估了下估计有400多个if条件,想通过自定义函数代替case when。但是不太会写
1.达梦本身就支持if函数 2.自定义一个也行,如下
CREATE OR REPLACE FUNCTION if01(p_condition BOOLEAN, p_true_value VARCHAR2, p_false_value VARCHAR2) RETURN VARCHAR2 IS BEGIN IF p_condition THEN RETURN p_true_value; ELSE RETURN p_false_value; END IF; END;
SELECT if01(1=1, 'true', 'false') FROM dual;
1.达梦本身就支持if函数
2.自定义一个也行,如下
CREATE OR REPLACE FUNCTION if01(p_condition BOOLEAN, p_true_value VARCHAR2, p_false_value VARCHAR2)
RETURN VARCHAR2
IS
BEGIN
IF p_condition THEN
RETURN p_true_value;
ELSE
RETURN p_false_value;
END IF;
END;
SELECT if01(1=1, 'true', 'false') FROM dual;