sql and csharp: Split Function
T-SQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | declare @ int int ,@prov int ,@city int ,@str nvarchar(500) set @str= '天河麗特青春:中國廣東省廣州市天河區天河路623號天河娛樂廣場麗特青春百貨一樓,塗聚文' select @ int =charindex( ':' ,@str) select @prov=charindex( '省' ,@str) select @city=charindex( '市' ,@str) select substring (@str,0,@ int ) select substring (@str,@ int +1,@prov-(@ int )) select substring (@str,@ int +1,@city-(@ int )) declare @ int int ,@prov int ,@city int ,@str nvarchar(500),@branch varchar (20) select @branch= 'HDF' select @ int =charindex( ':' ,ShopAddress) from Intranet.dbo.LC where BranchNO=@branch select @prov=charindex( '省' ,ShopAddress) from Intranet.dbo.LC where BranchNO=@branch select @city=charindex( '市' ,ShopAddress) from Intranet.dbo.LC where BranchNO=@branch select substring (ShopAddress,0,@ int ) from Intranet.dbo.LC where BranchNO=@branch select substring (ShopAddress,@ int +1,@prov-(@ int )) from Intranet.dbo.LC where BranchNO=@branch select substring (ShopAddress,@ int +1,@city-(@ int )) from Intranet.dbo.LC where BranchNO=@branch select substring (ShopAddress,0,charindex( ':' ,ShopAddress)) from Intranet.dbo.LC ---中國國內分店名稱 select BranchNO+ '--' +CompanyName+ substring (ShopAddress,0,charindex( '市' ,ShopAddress)+1) from Intranet.dbo.LC select BranchNO,CompanyName,ShopAddress substring (@str,@ int +1,@city-(@ int )) from Intranet.dbo.LC drop function [dbo].getVipExamBranchName go --- create function [dbo].getVipExamBranchName ( @branch varchar (20), @ key nvarchar(20), @citykey nvarchar(20) ) RETURNS NVARCHAR(200) AS BEGIN declare @ int int ,@prov int ,@city int ,@str nvarchar(500),@branchcode nvarchar(20),@re NVARCHAR(100),@cityname nvarchar(500) select @ int =charindex(@ key ,ShopAddress) from Intranet.dbo.LC where BranchNO=@branch --':' --select @prov=charindex('省',ShopAddress) from Intranet.dbo.LC where BranchNO=@branch select @city=charindex(@citykey,ShopAddress) from Intranet.dbo.LC where BranchNO=@branch --'市' select @branchcode= substring (ShopAddress,0,@ int ) from Intranet.dbo.LC where BranchNO=@branch --select substring(ShopAddress,@int+1,@prov-(@int)) from Intranet.dbo.LC where BranchNO=@branch if(@city>@ int )<br> select @cityname= substring (ShopAddress,@ int +1,@city-(@ int )) from Intranet.dbo.LC where BranchNO=@branch select @re=@branchcode+ '--' +@cityname RETURN @re end GO select [dbo].getVipExamBranchName ( 'HDF' , ':' , '市' ) ---函數 CREATE FUNCTION [dbo].[func_Split] ( @DelimitedString varchar (8000), @Delimiter varchar (100) ) RETURNS @tblArray TABLE ( ElementID int IDENTITY(1,1), -- Array index Element varchar (1000) -- Array element contents ) AS BEGIN -- Local Variable Declarations -- --------------------------- DECLARE @ Index smallint , @Start smallint , @DelSize smallint SET @DelSize = LEN(@Delimiter) -- Loop through source string and add elements to destination table array -- ---------------------------------------------------------------------- WHILE LEN(@DelimitedString) > 0 BEGIN SET @ Index = CHARINDEX(@Delimiter, @DelimitedString) IF @ Index = 0 BEGIN INSERT INTO @tblArray (Element) VALUES (LTRIM(RTRIM(@DelimitedString))) BREAK END ELSE BEGIN INSERT INTO @tblArray (Element) VALUES (LTRIM(RTRIM( SUBSTRING (@DelimitedString, 1,@ Index - 1)))) SET @Start = @ Index + @DelSize SET @DelimitedString = SUBSTRING (@DelimitedString, @Start , LEN(@DelimitedString) - @Start + 1) END END RETURN END --測試 DECLARE @SQLStr varchar (100) SELECT @SQLStr = 'Mickey Mouse, Goofy, Donald Duck, Pluto, Minnie Mouse' SELECT * FROM dbo.func_split(@SQLStr, ',' ) |
csharp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | /// <summary> /// 分割字符串 /// 塗聚文 /// /// </summary> /// <param name="str"></param> /// <param name="key"></param> /// <returns></returns> public ArrayList getSplit( string str, char key) { ArrayList alist = new ArrayList(); string [] sArray = str.Split(key); foreach ( string i in sArray) { alist.Add(i.ToString()); } return alist; } /// <summary> /// 正則表達式分割字符串 /// </summary> /// <param name="str"></param> /// <param name="key"></param> /// <returns></returns> public ArrayList getRegexSplit( string str, string key) { ArrayList alist = new ArrayList(); string [] resultString = Regex.Split(str, key, RegexOptions.IgnoreCase); foreach ( string i in resultString) { alist.Add(i.ToString()); } return alist; } |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2012-02-21 csharp 在万年历中计算显示农历日子出错