sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗,第1张

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、之后在该界面中,点击左上角“新建查询”选项。

3、接着在该界面中,输入截取指定字段某一个字符出现后的后面的字符串的sql语句“

select substring(name,charindex(',',name)+1,len(name)-charindex(',',name)) from test2;”。

4、然后在该界面中,点击左上方“执行”按钮。 

5、最后在该界面中,显示截取指定字段某一个字符出现后的后面的字符串成功。

你说的函数是oracle中的substr,sqlserver中的substring

下面是贴来的,就是手册翻译而来的,你随便看看吧

语法

SUBSTRING

(

expression

,

start

,

length

)

参数

expression

是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

start

是一个整数,指定子串的开始位置。

length

是一个整数,指定子串的长度(要返回的字符数或字节数)。

说明

由于在

text

数据上使用

SUBSTRING

start

length

指定字节数,因此

DBCS

数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与

READTEXT

处理

DBCS

的方式一致。然而,由于偶而会出现奇怪的结果,建议对

DBCS

字符使用

ntext

而非

text。

返回类型

如果

expression

是支持的字符数据类型,则返回字符数据。如果

expression

是支持的

binary

数据类型,则返回二进制数据。

返回字符串的类型与给定表达式的类型相同(表中显示的除外)。

给定的表达式

返回类型

text

varchar

image

varbinary

ntext

nvarchar

注释

在字符数中必须指定使用

ntext、char

varchar

数据类型的偏移量(start

length)。在字节数中必须指定使用

text、image、binary

varbinary

数据类型的偏移量。

说明

兼容级别可能影响返回值。有关兼容级别的更多信息,请参见

sp_dbcmptlevel。

示例

A

在字符串上使用

SUBSTRING

下例显示如何只返回字符串的一部分。该查询在一列中返回

authors

表中的姓氏,在另一列中返回

authors

表中的名字首字母。

USE

pubs

SELECT

au_lname,

SUBSTRING(au_fname,

1,

1)

FROM

authors

ORDER

BY

au_lname

下面是结果集:

au_lname

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

-

Bennet

A

Blotchet-Halls

R

Carson

C

DeFrance

M

del

Castillo

I

Yokomoto

A

(23

row(s)

affected)

下例显示如何显示字符串常量

abcdef

中的第二个、第三个和第四个字符。

SELECT

x

=

SUBSTRING('abcdef',

2,

3)

下面是结果集:

x

----------

bcd

(1

row(s)

affected)

--这个查询需要注意的是qwer后的需要查询的字符串必须是一个空格,不能有的是一个空格有的是两个。也就是格式要固定。

--定义参数

create table #a (string varchar(max))

declare @sql varchar(max)

declare @a varchar(max)

select @a ='asdf qwer zxcv 1234 qwer yuchor 3452 qwer abcd 7893'--这个是要查询的字符串

---------------------------查询qwer后面的字符串----------------------------------------

while charindex('qwer',@a)<>0

begin

select @a=SUBSTRING ( @a,charindex('qwer',@a)+5,LEN(@a)-charindex('qwer',@a)-4)

insert into #a values (@a)

end

select SUBSTRING (LTRIM ( string) ,1,charindex(' ',LTRIM ( string))) as result from #a

--查询结果

result

zxcv

yuchor

abcd

1、将新建好的表aaaa,填充需要查询的数据以"_"或者","为分隔符的两条数据。

2、先挑ID为1的数据进行截取查询演示。

3、如果已知截取字符的长度和特殊字符位置,就可以用substring()函数来从字符串的开始位置,截取到特殊字符出现的位置。

4、使用charindex()函数来返回特殊字符出现的位置,查询结果及语句。

5、使用LEFT()函数和charindex()函数来从字符最左边开始到特殊字符出现的位置。

6、第一个参数表示被截取的字符串,第二个参数表示要在第一个参数中开始截取的位置,第三个参数表示要截取的长度。

--这个查询需要注意的是qwer后的需要查询的字符串必须是一个空格,不能有的是一个空格有的是两个。也就是格式要固定。

--定义参数

create table #a (string varchar(max))

declare @sql varchar(max)

declare @a varchar(max)

select @a ='asdf qwer zxcv 1234 qwer yuchor 3452 qwer abcd 7893'--这个是要查询的字符串

---------------------------查询qwer后面的字符串----------------------------------------

while charindex('qwer',@a)<>0

begin

select @a=SUBSTRING ( @a,charindex('qwer',@a)+5,LEN(@a)-charindex('qwer',@a)-4)

insert into #a values (@a)

end

select SUBSTRING (LTRIM ( string) ,1,charindex(' ',LTRIM ( string))) as result from #a

--查询结果

result

zxcv

yuchor

abcd

以上就是关于sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗全部的内容,包括:sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗、sql 中 如何截取一个字段的某部分并同时与某一数值比较大小、sql 如何截取一个字段里某一字符串中间的字符等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10195400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存