注册
mysql循环 myloop WHILE () DO达梦sql怎么写(dm8/wind10)
技术分享/ 文章详情 /

mysql循环 myloop WHILE () DO达梦sql怎么写(dm8/wind10)

小范 2023/04/06 1108 2 0

image.png

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
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服