㈠ sql 分割字符串
select SUBSTRING (A列 , 1 ,CHARINDEX ( ' ' , A列 ) ) from A表
这个可以把A列空格前的字符取出来。
更新
update A表 set B列=(select SUBSTRING (A列 , 1 ,CHARINDEX ( ' ' , A列 ) ))
㈡ sql分割字符串查询,分组统计
首先掌握sql中分割字符串的方法:
declare @sql varchar(2000),@tsql nvarchar(max),@split varchar(100)
set @sql='1,3,5,6,8' --保存的字符
set @split=','--分隔符
select @tsql='select '''+replace(@sql,@split,''' union all select ''')+''''
exec(@tsql)
----完成之后将查询结果保存在一张临时表中。
然后使用 select count(*) , 字段名 from 表名 group by 字段名 就可以得到您想要的结果了。
希望对您有所帮助!
㈢ SQL语言如何将表内字符串按分割符号分割存储
用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)
㈣ sql 拆分字符串
alter FUNCTION [dbo].[SpitString]
(
@string nvarchar(500),--被分的字符串
@sp nvarchar(100) --分隔符
)
RETURNS
@_strings TABLE
(
id int,
string nvarchar(64),
inx int,
str1 nvarchar(65)
)
AS
BEGIN
declare @count int --计数
set @count=0
declare @index int
declare @one nvarchar(64)--取下来的一节
set @index=Charindex(@sp,@string)
while(@index>0)
begin
set @one=left(@string,@index-1)
set @count=@count+1
insert into @_strings (id,string,inx,str1) values(@count,@one,@index,@string)
set @string=right(@string,len(@string)-@index)
set @index=Charindex(@sp,@string)
end
insert into @_strings (id,string,inx,str1) values(@count+1,@string,@index,@one)
RETURN
END
go
调用:
SELECT * FROM [dbo].[SpitString] ('asdads,ad,sadsa,d,w,dsa,dsa,d,sad,sa,' ,',')
请注意:为了调试方便,便于理解森旦,返回的表中多芦春核加入了两个字段,这样,字串分解过程一目了然,您可以表值参数及插入语句中将其去掉。
SQL SERVER调试方法:1.在查询分析器中进行调试,可以查看执行结果,错误报告,错误行定位等,还可以进行效率分析。也可以加入一些调试中间结果或字段(如本例)进行调试。
2.跟踪指令陪掘执行进行调试:参过事件探查器,打开,文件,新建,跟踪,选择服务器及登录参数,选择一个模板,点击运行,即可开始跟踪SQLSERVER相关动作
㈤ sql语句中如何分割字符串进行替换
方法一:
varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace
替换
text
ntext
数据类型字段的语句
。
update
表名
set
字段名=replace(cast(与前面一样的字段名
as
varchar(8000))
,'原本内容','想要替换成什么')
方法二:
update
[表名]
set
字段名
=
replace(与前面一样的字段名,'原本内容','想要替换成什么')
㈥ sql语句进行字符串分割
substr(字符串,截取开始位置,截取长度) //返回截取的字
substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
㈦ sql如何根据隔符分割字符串
数据库自带的substring()、charindex()函数,可以根据需要截取字符串,但并不能实现分割
自己写分割函数,以下可以参考:
createfunctionGetStr
(
@strvarchar(1024),--要分割的字符串
@splitvarchar(10),--分隔符号
@indexint--取第几个元素
)
returnsvarchar(1024)
as
begin
declare@locationint
declare@startint
declare@nextint
declare@seedint
set@str=ltrim(rtrim(@str))
set@start=1
set@next=1
set@seed=len(@split)
set@location=charindex(@split,@str)
while@location<>0and@index>@next
begin
set@start=@location+@seed
set@location=charindex(@split,@str,@start)
set@next=@next+1
end
if@location=0select@location=len(@str)+1
returnsubstring(@str,@start,@location-@start)
end
㈧ 求sql split函数的用法
目前的sql没有自带split的函数,所以如果想用的话,需要自己先自建一个split的内嵌函数后,再使用;
这个函数最简单的用法,就是通过某个特定的分隔符,将一串字符串分割开来;
例如:split('a/b/c/d/e','/'),就会变成:
a
b
c
d
e
这个意思就是说,用''作为分隔符,分割'a/b/c/d/e'这个字符串;
具体如何构建split函数,可以参考一下这个:网页链接
当然还可以根据自己的需要,构建更复杂的函数,方便自己的使用;