create function sp_split( @c nvarchar(4000), @splitchar nvarchar(1) ) returns @table table (word nvarchar(max)) as begin declare @temp nvarchar(200) set @c=@c+@splitchar--在最右边加上一个分隔符,用于最后的获取最右边的字符串 while charINDEX(@splitchar,@c)>0 begin /* charINDEX(
今天修改到之前的大佬的代码,居然把多个Id存在一个列里面,还是用的逗号分割...特么查询的时候怎么办??? 网上搜索了半天,终于找到了SqlServer里面有一个PARSENAME函数,可以按.(点)分割字符串, 于是写下了如下sql ) ) AS two FROM 表 查询结果 参考文章:http://www.cnblogs.com/huangshuqiang/archive/2016/05/10/5477385.html
CREATE FUNCTION [dbo].[fnQuerySplit] ( @string VARCHAR(MAX) ,--待分割字符串 )--分割符 ) ) ) AS BEGIN DECLARE @begin INT , @end INT , ); ; SET @end = CHARINDEX(@separator, @string, @begin); ) BEGIN SET @item = SUBSTRING(@string, @begin, @end - @begin); INSERT
知识补充 String的split方法支持正则表达式: 正则表达式\s表示匹配任何空白字符,+表示匹配一次或多次. 有了以上补充知识,下面的内容就很好理解了. 一.待分割字符串 待分割字符串为如下: String str = "a b c d e f g" 其中,字符串中的的空白分别为:单个空格,多个空格,tab制表符. 二.使用一个或多个空格分割字符串 正确代码如下: String [] arr = str.split("\\s+"); for(String ss