国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

[原創]SQL表值函數:把用逗號分隔的字符串轉換成表格數據

2024-07-21 02:47:55
字體:
來源:轉載
供稿:網友
[原創]SQL表值函數:把用逗號分隔的字符串轉換成表格數據

 

我們日常開發過程中,非常常見的一種需求,把某一個用逗號或者/或者其他符號作為間隔的字符串分隔成一張表數據。

在前面我們介紹了 [原創]SQL 把表中字段存儲的逗號隔開內容轉換成列表形式,當然按照這種方式轉變一下也是可以實現的,但是我這里有以前我一直使用的另外一種方式,也記錄一下吧。

依照慣例,我們首先來看看效果。

調用:SELECT Id FROM [Fn_StringSplitToTable]('1,12,36,65,58,56,DF',',')

image

具體函數如下:

-- ============================================= -- 調用:SELECT Id FROM [Fn_StringSplitToTable]('1,12,36,65,58,56,DF',',') -- Create date: <Create Date,,> -- Description:    把用逗號分隔的字符串轉換成表格數據 -- ============================================= CREATE FUNCTION [dbo].[Fn_StringSplitToTable] (     @StringX varchar(MAX),     @Split nvarchar(10) ) RETURNS @IdsTable TABLE (     [Id] nvarchar(200) ) AS BEGIN     DECLARE @Index int     DECLARE @LenIndex int     SET @LenIndex=LEN(@Split)     SET @Index=CHARINDEX(@Split,@StringX,1)     WHILE (@Index>=1)     BEGIN         IF(LEFT(@StringX,@Index-1) <> '')             INSERT INTO @IdsTable SELECT LTRIM(RTRIM(LEFT(@StringX,@Index-1)))         SET @StringX=RIGHT(@StringX,LEN(@StringX)-@Index-@LenIndex+1)         SET @Index=CHARINDEX(@Split,@StringX,1)     END     IF(@StringX<>'') INSERT INTO @IdsTable SELECT LTRIM(RTRIM(@StringX))         RETURN END

以上調用是用逗號隔開,如果您的字符串是用/號隔開,直接修改調用字符串就行了。

-- 調用:SELECT Id FROM [Fn_StringSplitToTable]('1/12/36/65/58/56/DF','/')

如果朋友們覺得以后可能會用到的話,歡迎轉載,當然也可以推薦一下,謝謝。

PS:此博文是利用Windows Live Writer 2012編寫,格式效果可能不太好。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长垣县| 扶余县| 准格尔旗| 饶河县| 富川| 拜泉县| 兰西县| 大厂| 屯留县| 和林格尔县| 阿巴嘎旗| 贡嘎县| 渭南市| 玉环县| 东乡族自治县| 彝良县| 任丘市| 德安县| 安达市| 抚州市| 宜丰县| 平罗县| 柏乡县| 三都| 平谷区| 肇州县| 宁陵县| 无极县| 湘乡市| 呼图壁县| 图木舒克市| 枣庄市| 安宁市| 丹东市| 象州县| 惠安县| 寻甸| 抚宁县| 郑州市| 太原市| 讷河市|