SQL 拼接字符串使用IN查询方法原创
金蝶云社区-比邻星
比邻星
1人赞赏了该文章 139次浏览 未经作者许可,禁止转载编辑于2024年10月08日 20:51:44
CREATE FUNCTION [dbo].[F_SUBSTRINGINTARRAY] 
(    
    @STR VARCHAR(1000), --字符串队列格式为:1,2,3,4
    @CHAR VARCHAR(10)   --截取字符串的符号:,
)
RETURNS @RESULT TABLE(ID INT)
AS
BEGIN

    DECLARE @INDEX INT   --声明截取符号的位置
    DECLARE @ORDERID INT --声明获取的INT编号
    
    --判断传递的字符串不能为空
    IF LEN(@STR) > 0     
    BEGIN
        --查询第一个符号,的位置
        SET @INDEX = CHARINDEX(@CHAR, @STR) 
        --循环截取字符串
        WHILE @INDEX > 0 
        BEGIN
            --截取第一个,位置的值
            SET @ORDERID = SUBSTRING(@STR, 1, @INDEX - 1)
            --截取@STR字符串第一个值,截取后变成 2,3,4
            SET @STR = SUBSTRING(@STR, @INDEX + 1, LEN(@STR) - @INDEX)
            --重新给@INDEX赋值
            SET @INDEX = CHARINDEX(@CHAR, @STR)
            --插入到返回的表格中
            INSERT INTO @RESULT(ID) VALUES(@ORDERID)
        END
        --判断是否截取到最后一个
        IF @INDEX = 0 AND LEN(@STR) > 0
        BEGIN
            --插入到返回的表格中
            INSERT INTO @RESULT(ID) VALUES(@STR)
        END
    END
RETURN    
END
/*
测试当前的函数
--第一种情况
SELECT * FROM [DBO].[F_SUBSTRINGINTARRAY]('1,2,3', ',')
--第二种情况
SELECT * FROM [DBO].[F_SUBSTRINGINTARRAY]('1', ',')
*/
GO


图标赞 1
1人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!