sql如何根据隔符分割字符串?

作者&投稿:崇党 (若有异议请与网页底部的电邮联系)
简单SQL语句,如何截取指定分隔符前字符串~

一、用到的函数:substring(' ', , )、charindex(' ',' ')
select SUBSTRING('hello@163.com',1,charindex('@','hello@163.com')-1)
1.substring(字符串表达式,开始位置,长度):
从一个指定字符串的指定位置截取制定长度的字符;
第一个参数表示被截取的字符串;
第二个参数表示要在第一个参数中开始截取的位置;
第三个参数表示要截取的长度。
例如:select substring('abc123',1,2) →返回ab
从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。
2.charindex(字符串表达式1,字符串表达式2[,整数表达式]):
在字符串2中查找字符串1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一个是null则返回null。
可以指定在字符串2中查找的起始位置。
例如:select charindex('ab','BCabTabD') → 返回3
select charindex('ab','BCabTabD',4) →返回6

二、用到的函数:left(' ', )、charindex(' ',' ')
select LEFT('hello@163.com',charindex('@','hello@163.com')-1)
1.left(字符串表达式,整数表达式):
从字符串表达式的最左边开始截取整数表达式个字符。
例如:select left('abcdef',3) →返回abc

用replace函数,将分号或者 @ 符号, 替换为你的其他分隔符。

REPLACE
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )
参数
''string_replace1''
待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。
''string_replace2''
待查找的字符串表达式。string_replace2 可以是字符数据或二进制数据。
''string_replace3''
替换用的字符串表达式。string_replace3 可以是字符数据或二进制数据。
返回类型
如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
示例
下例用 xxx 替换 abcdefghi 中的字符串 cde。
SELECT REPLACE(''abcdefghicde'',''cde'',''xxx'')GO
下面是结果集:
------------abxxxfghixxx(1 row(s) affected)

  1. 数据库自带的substring()、charindex()函数,可以根据需要截取字符串,但并不能实现分割

  2. 自己写分割函数,以下可以参考:

create function GetStr
(
 @str varchar(1024),  --要分割的字符串
 @split varchar(10),  --分隔符号
 @index int --取第几个元素
)
returns varchar(1024)
as
begin
 declare @location int
 declare @start int
 declare @next int
 declare @seed int
 set @str=ltrim(rtrim(@str))
 set @start=1
 set @next=1
 set @seed=len(@split)
 
 set @location=charindex(@split,@str)
 while @location<>0 and @index>@next
 begin
   set @start=@location+@seed
   set @location=charindex(@split,@str,@start)
   set @next=@next+1
 end
 if @location =0 select @location =len(@str)+1  
 return substring(@str,@start,@location-@start)
end


举个例子,相信你可以看懂,举一反三的
/*
字符串分拆函数

--调用示例
select * from dbo.fsplit('a;adf;fd;ed;dh',';')
select * from dbo.fsplit('a,,adf,,fd,,ed,,dh',',,')
邹建 2003.07*/

--检查函数是否存在
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fsplit]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fsplit]
GO

--创建字符串分拆的函数
create function fsplit(
@str varchar(8000) --要分拆的字符串
,@spli varchar(10) --字符串分隔符
)
returns @re table(istr varchar(8000))
as
begin
declare @i int,@splen int
select @splen=len(@spli)
,@i=charindex(@spli,@str)
while @i>0
begin
insert into @re values(left(@str,@i-1))
select @str=substring(@str,@i+@splen,8000)
,@i=charindex(@spli,@str)
end
if @str<>'' insert into @re values(@str)
return
end

select * from dbo.fsplit(123|abc|000|777','|')


column命令如何根据指定的分隔符和列宽调整输入内容?
column[参数][文件] -s sep -t -n -c columns -x -e 其中,-s sep 参数用于设置列的分隔符,如要以数字3为分隔符,可以写为column -s3。-t选项用于确定输入中包含的列数,并将其转换为表格形式。-n选项则是禁用将连续的分隔符合并,保持每个分隔符独立。如果你想调整列的宽度,可以使用...

在python中如何根据空格拆分字符串?
在 Python 中拆分字符串意味着根据所使用的分隔符或分隔符将单个字符串切成字符串数组。例如,如果一个字符串初始化为Hello, World! I am here.,使用空格作为分隔符将其拆分将产生以下输出:接下来介绍几种在 Python 中根据空格作为定界符来分割字符串的方法。在 Python 中使用字符串 split() 方法...

如何在excel中进行内容拆分?
选择设置单元格格式。在设置单元格格式窗口中去掉合并单元格前面的对钩。5、打开要分列的excel文档,在菜单栏找到数据,点开。先选定要分列的列,点列的上部就全选了,还要注意后面留下一空列。点击分列,调出分列窗口,根据分隔符来分列,此例分隔符就是空格。勾选其他,在其他后面输入一个空格。

Excel如何用WORD将以特殊分隔符内容分隔列显示
打开WORD将刚才复制的内容,粘贴过来。如图所示。在“开始”选项卡,点击“查找”命令,打开“查找和替换”对话框,快捷键CTRL+H,如图所示。在“查找和替换”对话框,查找的内容输入分隔符“\/”,本文是这个分隔符,你在生活中要根据自己的情况,灵活更换。在替换的内容中输入^p。^p这个符号怎么样才...

如何使用Excel数字分隔符? Excel教程用“-”分隔数字列
注意:1. 当使用公式= A2&“-”&B2&“-”&C2来连接数据时,请注意,要连接的文本必须包含在“”中.2. 在通过数据排序命令进行文本排序向导的三个步骤的第三步中,请确保将分隔符字段分为中间字段和右列字段. 将数据格式设置为文本类型“无组”. 如果该列以0开头,则会消失.

Excel中如何把有相同分隔符的文本分开?如例:
菜单,数据,分列,选择“分隔符号”,再选择“逗号”,点击完成,这样就能把你要的拆分成四列数据了

用搜狗打字时输入拼音时需分隔符分开 怎么操作 请高人赐教
输入第一个音节后,再输入单引号 ‘ 即可。比如 输入“皮袄”,就输入 pi ' ao

excel怎样分列字符
第二步:逗号前打勾 点击下一步 见下图 5、在弹出的文本分列向导中 第三步:点击完成 见下图 6、这样子,单元格A1中的字符串验,旧,森,y,u,1已经按照半角逗号,分列好了。见下图 7、当然字符串分列还有可能是按照空格等其他分隔符或者固定宽度来分列,大家可以在文本分列向导中灵活运用。

如何将TXT中的数据以分隔符为标记分列?
利用EXCEL导入功能可以让TXT中的数据在EXCEL中以分隔符为标记分列,具体操作请参照以下步骤。1、首先在电脑上建立一个TXT文件,并以“,”作为内容的分隔符。2、然后打开EXCEL文件,在数据选项页面的获取外部数据区域点击“自文本”选项。3、然后在出现的窗口中,选中目标TXT文件,点击“导入”选项。4、...

word怎么分隔符
三、分栏符的使用 分栏符的使用方法与分页符类似。在Word编辑页面中,选择“布局”选项卡,然后点击“分隔符”下拉菜单中的“分栏符”选项,即可将文档内容分为不同的栏目。可以根据需要选择分栏的数量和栏宽。四、其他类型的分隔符 除了分页符和分栏符,Word还提供其他类型的分隔符,如换行符、制表符...

万柏林区13436282306: sql如何根据隔符分割字符串? -
繁鸦益比: 数据库自带的substring()、charindex()函数,可以根据需要截取字符串,但并不能实现分割自己写分割函数,以下可以参考:create function GetStr( @ str varchar(1024), --要分割的字符串 @split varchar(10), --分隔符号 @index int --取第几个元...

万柏林区13436282306: sqlserver 按分隔符截取字符串 -
繁鸦益比: select substring('ADFASDFD(DASFADSFAS)',1,charindex('(','ADFASDFD(DASFADSFAS)')-1)看看,是不是这样 主要用到两个函数,一个charindex,这个是判断指定字符位置的函数 另一个是substring,这个是截取字符串的函数

万柏林区13436282306: sql截取第2个和第3个分隔符之间的字符串 -
繁鸦益比: substr('字符串', locate('<br>','字符串',locate('<br>','字符串')+1)+1,locate('<br>','字符串', locate('<br>','字符串',locate('<br>','字符串')+1)+1)) 有点乱,第二行是截取第二个分割符出现的位置+1,以此类推,一般超过第4个位置就写函数了,可以百度下,很多

万柏林区13436282306: SQL语言如何将表内字符串按分割符号分割存储 -
繁鸦益比: 用replace函数,将分号或者 @ 符号, 替换为你的其他分隔符.REPLACE 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式.语法 REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' ) ...

万柏林区13436282306: SQL语句实现拆分带间隔符号的字段 -
繁鸦益比: 如果ID和内容是以空格分隔的,那么就这么写 select left(m_content,charindex(' ',m_content)-1) as ID,stuff(m_content,1,charindex(' ',m_content),'') as content from 表 当然,如果记录中有不完全按照id+空格+内容这样的,语句可能会有问题. “向...

万柏林区13436282306: sql 语句 怎么将多个分号字符串拆分成多条数据 -
繁鸦益比: sql server中没有这种函数,可以自建一个function去拆分,给你个思路,用charindex 或是instr等函数,在循环体中查找分隔符出现的位置和并记录出现次数到变量,然后使用substring函数截取字符串,输出

万柏林区13436282306: sqlserver 如何截取格式固定的分隔符之间的字符 -
繁鸦益比: 我说一下用java实现,有多种方案,可以先把整个字符串用 | 究分割,再用 = 分割,取出想要的字符串,组合起来.第二种方案用正则提取出想要的字符串,再组合.例如下面是用正则全实现的:import java.util.regex.Matcher; import java.util....

万柏林区13436282306: sql server里如何将一组用逗号分隔的字符串分解并插入到另一张表中,比如:11873,27827, 也可能是好多 -
繁鸦益比: 1.得到这个字符串.如:111,222,3332.得到带","字符串的长度.来如:113.用replace把","去掉,得到长度.如:自94.到这步,我们就知道,这个字符串有2个逗号,也就是说,有3个有效百数据.5.用while,substring开始循环得到数据,然后插入到表中 如:set count=0 while(coung<3)--我们已经知道就3个有效数据 begin set value=substring()---截取度到第一个”,“,得到第一个有效数据 执行insert语句.end

万柏林区13436282306: sqlserver 怎么分割字符串 -
繁鸦益比: 如楼上给的 单独分割一部分 也可用下面的函数 分割出一个集合1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21-- 1.0 拆分字符串 参数 @strSource要操作的字符串 @strSeparator分隔符 CREATEFUNCTION[dbo].fn_splitStr( @strSource ...

万柏林区13436282306: 高手,在sql语句里如何提取出分隔符前后的字符???不要太长的. -
繁鸦益比: create FUNCTION f_STR( @s varchar(100), --待分拆的字符串 @split varchar(1), --分隔符 @count int--第几个 )RETURNS varchar(20) AS BEGINdeclare @curr int,@re varchar(20)set @s=@s+@splitset @curr=0while @curr<>@count...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网