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人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读