This website requires JavaScript.

MSSQL 字符串分割函数

写了个字符串分割函数,主要用来分割组织架构. 比如字符串为 '宇宙-地球-天朝-魔都-胖哥' 输出第三级 (天朝):

SELECT   dbo.SPLIT('宇宙-地球-天朝-魔都-胖哥', 3)
 

超过字符串本身的层级有两个选项. 一种是显示最后一个层级 (默认) SELECT   dbo.SPLIT('宇宙-地球-天朝-魔都-胖哥', 5) SELECT   dbo.SPLIT('宇宙-地球-天朝-魔都-胖哥', 6)

Unnamed QQ Screenshot20150520135549

另外一个则是显示为空 (取消我代码中的注释即可) SELECT   dbo.SPLIT('宇宙-地球-天朝-魔都-胖哥', 5) SELECT   dbo.SPLIT('宇宙-地球-天朝-魔都-胖哥', 6) QQ Photo20150520135336

ALTER FUNCTION [dbo].[SPLIT] ( @products NVARCHAR(200) , @level INT ) RETURNS NVARCHAR(100) AS BEGIN	 DECLARE @individual NVARCHAR(200) = NULL DECLARE @count INT = 1 DECLARE @isZero INT = 0 WHILE LEN(@products) > 0 AND @count <= @level BEGIN IF CHARINDEX('-', @products) > 0 SET @individual = SUBSTRING(@products, 0, CHARINDEX('-', @products)) ELSE IF @isZero = 0 BEGIN SET @individual = @products SET @isZero = 1 END --ELSE --     IF @isZero = 1 --        BEGIN --            SET @individual = '' --        END SET @count = @count + 1 SET @products = SUBSTRING(@products, CHARINDEX('-', @products) + 1, LEN(@products)) END RETURN @individual END
 

0条评论
avatar