为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:wind10
【CPU】:
【问题描述】*:mysql函数,dm数据库怎么写
CREATE DEFINER=`sdzg`@`%` FUNCTION `get_unique_items`(str VARCHAR(1000)) RETURNS varchar(1000) CHARSET utf8mb4 COLLATE utf8mb4_general_ci
READS SQL DATA
BEGIN
SET @String = str;
SET @Occurrences = LENGTH( @String ) - LENGTH(
REPLACE ( @String, ',', '' ));
SET @ret = '';
myloop :
WHILE
( @Occurrences > 0 ) DO
SET @myValue = SUBSTRING_INDEX( @String, ',', 1 );
IF
( TRIM( @myValue ) != '' ) THEN
IF
(( LENGTH( @ret ) - LENGTH( REPLACE ( @ret, @myValue, '' )))= 0 ) THEN
SELECT
CONCAT( @ret, @myValue, ',' ) INTO @ret;
END IF;
END IF;
SET @Occurrences = LENGTH( @String ) - LENGTH(
REPLACE ( @String, ',', '' ));
IF
( @occurrences = 0 ) THEN
LEAVE myloop;
END IF;
SET @String = SUBSTRING( @String, LENGTH( SUBSTRING_INDEX( @String, ',', 1 ))+ 2 );
END WHILE;
SET @ret = CONCAT( SUBSTRING( @ret, 1, LENGTH( @ret )- 1 ), '' );
RETURN @ret;
END
可以参考https://eco.dameng.com/document/dm/zh-cn/sql-dev/practice-func.html
基本语法是类似,有一些细节不同;
@变量 这种直接写成变量就行;
DEFINER写法不支持