问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql查询里 怎么拆分字符串(按“/”拆分)

发布网友 发布时间:2022-04-28 22:32

我来回答

4个回答

懂视网 时间:2022-04-07 22:31

Create FUNCTION [dbo].[F_Split]
 (
 @SplitString nvarchar(max), --源字符串
 @Separator nvarchar(10)=‘ ‘ --分隔符号,默认为空格
 )
 RETURNS @SplitStringsTable TABLE --输出的数据表
( [id] int identity(1,1), [value] nvarchar(max) ) AS BEGIN DECLARE @CurrentIndex int; DECLARE @NextIndex int; DECLARE @ReturnText nvarchar(max); SELECT @CurrentIndex=1; WHILE(@CurrentIndex<=len(@SplitString)) BEGIN SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex); IF(@NextIndex=0 OR @NextIndex IS NULL) SELECT @NextIndex=len(@SplitString)+1; SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex); INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText); SELECT @CurrentIndex=@NextIndex+1; END RETURN; END --使用示例 select * FROm dbo.F_Split(‘111,b2222,323232,32d,e,323232f,g3222‘, ‘,‘)
技术分享

结果为

id          value

-------- ---------------------------------------

1           111

2           b2222

3           323232

4           32d

5           e

6           323232f

7           g3222


=========================================================================

二、F_SplitLength:获取分割后的字符数组的长度

技术分享
Create function [dbo].[F_SplitLength]
 (
 @String nvarchar(max), --要分割的字符串
 @Split nvarchar(10) --分隔符号
 )
 returns int
 as
 begin
 declare @location int
 declare @start int
 declare @length int
 
 set @String=ltrim(rtrim(@String))
 set @location=charindex(@split,@String)
 set @length=1
 while @location<>0
 begin
 set @start=@location+1
 set @location=charindex(@split,@String,@start)
 set @length=@length+1
 end
 return @length
 end

--调用示例
select dbo.F_SplitLength(‘111,b2222,323232,32d,e,323232f,g3222‘,‘,‘)
技术分享

结果为7。

 

=========================================================================

三、F_SplitOfIndex:获取分割后特定索引的字符串

技术分享
Create function [dbo].[F_SplitOfIndex]
 (
 @String nvarchar(max), --要分割的字符串
 @split nvarchar(10), --分隔符号
 @index int --取第几个元素
 )
 returns nvarchar(1024)
 as
 begin
 declare @location int
 declare @start int
 declare @next int
 declare @seed int
 
 set @String=ltrim(rtrim(@String))
 set @start=1
 set @next=1
 set @seed=len(@split) 
 set @location=charindex(@split,@String)
 
 while @location<>0 and @index>@next
 begin
 set @start=@location+@seed
 set @location=charindex(@split,@String,@start)
 set @next=@next+1
 end
 if @location =0 select @location =len(@String)+1 
 return substring(@String,@start,@location-@start)
 end

--使用示例
select dbo.F_SplitOfIndex(‘111,b2222,323232,32d,e,323232f,g3222‘,‘,‘, 3)
技术分享

SQL自定义函数split分隔字符串

标签:

热心网友 时间:2022-04-07 19:39

先建立一个自定义函数,之个函数非常有用,建议收入自已的数据库
CREATE FUNCTION mysplit--将以某分隔符分段的字串,按指定的顺序号提取子串:  

 (@str nvarchar(2000),--源字串
   @sn int,    --提取序号
   @Deli varchar(1) --分隔符
  )
   RETURNS varchar(100)
AS
BEGIN
declare @first int,@last int,@result varchar(1000),@sn0 int
select @sn0=0,@first=0,@LAST=1,@str=@str+REPLICATE(@DELI,1)
while @sn0!=@sn
 begin
 select @sn0=@sn0+1,@first=@LAST,@last=charindex(@DELI,@str,@LAST)+1
 end
if @last-@first-1<0
set @result=''
else
SET @RESULT=SUBSTRING(@str,@FIRST,@LAST-@FIRST-1)
RETURN ( @RESULT )
END

查询方法:

DECLARE @A VARCHAR(100),@B VARCHAR(100),@C VARCHAR(100)
SELECT 
@A=DBO.MYSPLIT('A|B|C',1,'|') ,
@B=DBO.MYSPLIT('A|B|C',2,'|') ,
@C=DBO.MYSPLIT('A|B|C',3,'|') 
SELECT @A,@B,@C

热心网友 时间:2022-04-07 20:57

自定义split函数

CREATE FUNCTION [dbo].[split]
(@str nvarchar(4000),@code varchar(10),@no int )
RETURNS varchar(200)
AS
BEGIN
declare @intLen int
declare @count int
declare @indexb int
declare @indexe int
set @intLen=len(@code)
set @count=0
set @indexb=1
if @no=0
if charindex(@code,@str,@indexb)<>0
return left(@str,charindex(@code,@str,@indexb)-1)
else
return @str
while charindex(@code,@str,@indexb)<>0
begin
set @count=@count+1
if @count=@no
break
set @indexb=@intLen+charindex(@code,@str,@indexb)
end
if @count=@no
begin
set @indexe=@intLen+charindex(@code,@str,@indexb)
if charindex(@code,@str,@indexe)<>0
return substring(@str,charindex(@code,@str,@indexb)+len(@code),charindex(@code,@str,@indexe)-charindex(@code,@str,@indexb)-len(@code))
else
return right(@str,len(@str)-charindex(@code,@str,@indexb)-len(@code)+1)
end
return ''
END

热心网友 时间:2022-04-07 22:32

itjob上有视频看
sql查询里 怎么拆分字符串(按“/”拆分)

先建立一个自定义函数,之个函数非常有用,建议收入自已的数据库CREATE FUNCTION mysplit--将以某分隔符分段的字串,按指定的顺序号提取子串:(@str nvarchar(2000),--源字串 @sn int, --提取序号 @Deli varchar(1) --分隔符 ) RETURNS varchar(100)ASBEGINdeclare @first int,@la...

SQL拆分逗号分隔的字符串

1、首先点击新建查询按钮,新建一个查询。2、然后准备一个要分割的字符串,如下图所示。3、接着用parsename进行分割,第二个参数是取分割后的第几个,如下图所示,第一个是最后一个位置。4、然后最后一个才是第一个的位置。5、接下来就可以通过位置把他们都取出来了。6、最后就得到了字符串各个分...

SQL拆分逗号分隔的字符串

要处理逗号分隔的字符串,SQL提供了一个简单的方法。首先,打开SQL环境,点击新建查询功能,初始化一个查询操作。在处理的阶段,你需要有一个待分割的字符串,例如:"apple,banana,orange"。在这个字符串中,逗号起到了分隔各个元素的作用。接下来,利用SQL的`PARSENAME`函数进行分割。这个函数的第二个参...

SQL 如何把字符串拆分按固定值插入到表里?

--方法一(用xml来拆分字符串)Select id,type,name,app From (Select id,type, CAST( '&lt;v&gt;'+REPLACE(name,',','&lt;/v&gt;&lt;v&gt;')+'&lt;/v&gt;' as xml) As xml,app From (select 1 As id,'A' As type,'张三,李四,王五' As name,0 As APP) S ) a outer apply ( Select x.y....

再sql中如何把一个字符串按字符分解比如@m=‘abc’分解以后变成‘a...

Sql第一种方式:SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)第二种方式:CREATEFUNCTION dbo.Split(@String varchar(8000), @Delimiter char(1))returns @temptable TABLE (items varchar(8000))asbegin declare @idx int declare @slice varchar(8000) select @idx ...

oracle sql 实现查询时把一字符串按逗号分割,返回分割后的份数?_百...

上代码上图 select length('张三,李四,王五,赵六')-length(replace('张三,李四,王五,赵六',','))+1 from dual;

oracle sql 字符串拆分的查询的问题,急!!!

1 row inserted SQL&gt; insert into a(t_name, t_desc) values ('lisi','b,c');1 row inserted SQL&gt; insert into a(t_name, t_desc) values ('wangwu','c');1 row inserted SQL&gt; insert into a(t_name, t_desc) values ('zhangliu','dd');1 row inserted SQL&gt; select * from...

sql 如何将一个字段拆分成单个字符(如图:)

可以用substring函数来处理:select substring(StyleID,1,1) as StyleID_1,substring(StyleID,2,1) as StyleID_2,substring(StyleID,3,1) as StyleID_3,substring(StyleID,4,1) as StyleID_4,substring(StyleID,5,1) as StyleID_5 from 表 ...

在SQL中怎么把一列字符串拆分为多列,请高手赐教

--首先,你是按什么规则拆? 我举个例子 你要按字段中的逗号拆开,假设字段名叫text--用charindex和substring这2个函数 select substring(text,1,charindex(',',text)-1) as [before], substring(text,charindex(',',text),len(text)) as [after] from table ...

SQL server根据逗号拆分字符串

本次任务要求根据逗号将submit_param结果集拆分为多行。原始结果集如下:由于我使用的SQL Server版本是2008,无法使用sql_split等函数,欢迎各位提供更好的解决方案,共同进步。关于拆分字符串,前三种方法实质上都是利用spt_values,但数据超过一定范围就无法处理,就像我这次的例子一样。当数据超出范围后,...

sql包含多个字符串查询 sql server字符串拼接 sql 字符串函数 sql字符串截取 sql数组拆分
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2020年台州市的国企考试好考吗?有没有人考过? 高中害怕打针是什么样的效果呢 小腿肚子疼怎么办 怎么在知道上提问 梦幻西游怎么绑物品锁? 梦幻西游怎么给装备上锁,有知道的前辈告诉我一下写详细点一部一部的... 玉泉镇学校办学文化 玉泉镇行政区划 白天上班怎么减大腿呢 用燃烧脂肪的膏体擦在大腿上用保鲜膜包住会瘦大腿吗 合肥住房公积金怎么办理划拨还款??? 公积金贷款状态:资金划拨放款,是贷款成功了吗? 合肥公积金贷款资金划拨需要多久 三国全面战争 怎么招战场上的武将,一不小心 就把它杀死了! 公积金资金划拨是不是贷款已经批下来了 –安 三国全面战争武将有什么好处 住房公积金资金调拨是什么意思 《三国战争》名将阁 详解怎么玩 三国战争策略类网页游戏,历史武将是唯一的,质量好,不知道谁知道啊。 除去翼三国2。 找半天了!唉! 三国战争游戏武将奶妈都谁? 三国 全面战争怎么才能无限或者多收买武将? 历代武将谁最强,三国的武将按历史上说真的是万人敌么? 公积金贷款状态:资金划拨放款,是贷款成功了吗 三国战争天命武将获得 三国全面战争中后期文官武将太少怎么办?如何收买武将,买兵? 全面战争:三国单挑最强的是哪些武将? 胡莱三国金将哪个厉害 三国的战争手游那五个将领最强 如果在三国当主公,选择哪五个文臣武将才是最好的? 《全面战争:三国》武将关羽厉害,还是吕布厉害? 合肥二手房买卖公积金组合贷款,已到资金划拨阶段还要多久拿到放款呢 sql如何根据隔符分割字符串? 公积金资金划拨中能离职么? SQL拆分逗号分隔的字符串 办理每年公积金自动划拨,需要些什么手续 oracle 如何用sql实现split功能 公积金中心资金划拨完成,还差银行放款是不是说明贷款已经批下来了,求专家指点,谢谢了 sql 字符串拆分?? 如何住房公积金自动划拨 sql怎么实现有c#里的spilt拆分字符串的方法啊 SQL字符串拆分的问题 土地使用证上写个划拨是什么意思?可以用于公积金贷款不? sql分割字符串查询,分组统计 住房公积金划拨需要提供的材料,要满足什么条件 Split(SQL) 公积金按份额划转 SQL 特定字符串分割 请教:公积金按月划拨的问题 为什么我不加群只能看见管理员和群主看不到群成员 sql字符串怎么按逗号分割