gpt4 book ai didi

mysql - 添加由分隔符分隔的非 1NF 格式的值的函数/过程

转载 作者:行者123 更新时间:2023-11-29 22:30:48 26 4
gpt4 key购买 nike

我需要一个用 MySQL 编写的函数,将单个列中并由分隔符分隔的数字(正数和负数)相加。本例中的分隔符是“?”。该函数还需要忽略非数字、非减号(“-”)、非句点(“.”)和非分隔符(例如“?”)的无关字符。

示例是名为“BalAdjAmt”的列,其值可以是:

500.00?500.00?-1000.00
500.00
500.00?500.00
500.00?500.00?-1000.00 B

在此数据集上运行该函数的结果应为:

0
500.00
1000.00
0

任何指示都会有帮助。提前致谢。

最佳答案

您可以使用common_schema以方便工作。然后你可以创建一个像这样的函数:

DELIMITER $$

DROP FUNCTION IF EXISTS `fn_test`$$

CREATE FUNCTION `fn_test`(`_value` VARCHAR(500))
RETURNS DECIMAL(7,2)
BEGIN
DECLARE `_iteration`, `_num_tokens` INT UNSIGNED DEFAULT 0;
DECLARE `delim` CHAR(1) DEFAULT '?';
DECLARE `_return` DECIMAL(7,2) DEFAULT 0;

SET `_num_tokens` := (SELECT `common_schema`.`get_num_tokens`(`_value`, `delim`));

WHILE `_iteration` < `_num_tokens` DO
SET `_iteration` := `_iteration` + 1;
SET `_return` := `_return` + (SELECT CAST(`common_schema`.`split_token`(`_value`, `delim`, _iteration) AS DECIMAL(7,2)));
END WHILE;

RETURN `_return`;
END$$

DELIMITER ;

关于mysql - 添加由分隔符分隔的非 1NF 格式的值的函数/过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com