当前位置:首页 » 编程语言 » 截取字符串sql

截取字符串sql

发布时间: 2023-01-16 18:53:33

sql中where截取字符串字符

不管哪个库,sql中一般都支持substring 或者它的变种 substr left right mid等

❷ 3.SQL字符串截取技巧

       有时我们会临时写一些SQL脚本来统计一些东西,或者是提供视图或者存储过程给第三方使用。但是有些内容是串联起来存在一个字段中的。

比如:sMZ(民族)      sLx(联系方式)

              01/汉族            tel:123456/qq:87654321/phone:13812345678

SELECT SUBSTRING('01/汉族',4,2)   汉族

SELECT RIGHT('01/汉族',2)   汉族  --也是一样的 

取民族很简单 如果要取手机号phone 就比较麻烦了,因为我们不知道QQ是几位的

或者qq电话可能没有填写了,单纯依靠字段长度截取不了的。

这样就需要变通下了:

SELECT SUBSTRING('tel:123456/qq:87654321/phone:13812345678',

charindex('/phone','tel:123456/qq:87654321/phone:13812345678')+1,1000)

使用charindex获取'/phone'字符的其实位置 嵌套SUBSTRING截取

如果在MySQL中还可以这样:

substring_index('tel:123456/qq:87654321/phone:13812345678', '/', -1) 

'phone:13812345678' 截取第一个 '/' (倒数)之后的所有字符

substring_index('tel:123456/qq:87654321/phone:13812345678', '/', 1) 

'tel:123456' 截取第一个 '/' 之前的所有字符

❸ SQL SERVER 字符串截取

1.将字符串中从某个字符开始截取一段字符,替换成另一字符

select   stuff('helloworld!',4,4,'****')

hel****rld!

2.指定字符串起始位置,截取指定长度

select  substring('helloworld!',4,5)

lowor

3.替换指定字符串

select   replace('helloworld!','ld','aa')

helloworaa!

4.去除字符串两端空格

select  ltrim(' helloworld!')

helloworld!

5.用0替换NULL【isnull( )】

select     ISNULL(KCRKD2_SCDDLS,0)   from    KCRKD2

返回0

6.取字符串,再转化为整数

select      convert(float,substring(xsddmx_wlbh,6,3))  from   XSDDMX

7.字符串前三个是固定的,后面长度是变化的用LEN()取字符串长度,去掉前三个字符(截取右端固定字符数换成LEFT)

SELECT    RIGHT(KCRKD3_JH,LEN(KCRKD3_JH)-3)      FROM     KCRKD3

返回B160459B01487

8.从‘-’向后截取8位字符(charindex()返回字符位置)

select    SUBSTRING('E03AHJC-E1701005020184',charindex('-','E03AHJC-E1701005020184')+1,8)

9. replace将‘h’替换

SELECT     REPLACE('Hello,World!','h','2')   2ello,World!

SELECT     REPLACE('Hello,World!','h','')      ello,World!

SELECT     REPLACE('Hello,World!',' ','2')      Hello,World!

10.复制字符

select      REPLICATE('Hello,World!',3)

时间函数

1.截取两个时间的时间差

select  DATEDIFF(D,TMBASE_DATE,GETDATE())  from     TMBASE

❹ 如何从多个位置截取字符串的SQL语句

SQL 中从多个位置截取字符串,需要配合left,right,rtrim三个函数来实现。

一、函数语法:

1、left()
LEFT (<character_expression>, <integer_expression>)
返回character_expression 左起 integer_expression 个字符。

2、RIGHT()
RIGHT (<character_expression>, <integer_expression>)
返回character_expression 右起 integer_expression 个字符。

3、LTRIM(character_expression) 把字符串character_expression头部的空格去掉。

4、RTRIM(character_expression) 把字符串character_expression尾部的空格去掉。

二、代码实例:

图中以:表a,ID为2,C列的值“12345678”为例:

其中最后一句中的right(rtrim(c),1),是因为字符只有8位,在right函数中,系统自动按C列定义的长度使用空格补足。也就是说如果是right(c,1)返回空字符“”,所以使用rtrim(c)把右边空格删除。

❺ sql 如何截取一个字段里某一字符串中间的字符

--这个查询需要注意的是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截取字符串函数:
A.截取从字符串左边开始N个字符
以下是代码片段:
Declare
@S1
varchar(100)
Select
@S1='http://www.xrss.cn'
Select
Left(@S1,4)
------------------------------------
显示结果:
http
B.截取从字符串右边开始N个字符(例如取字符www.163.com)
以下是代码片段:
Declare
@S1
varchar(100)
Select
@S1='http://www.163.com'
Select
right(@S1,11)
------------------------------------
显示结果:
www.163.com
C.截取字符串中任意位置及长度(例如取字符www)
以下是代码片段:
Declare
@S1
varchar(100)
Select
@S1='http://www.xrss.cn'
Select
SUBSTRING(@S1,8,3)
------------------------------------
显示结果:
www
以上例子皆是已知截取位置及长度,下面介绍未知位置的例子
2.截取未知位置的函数
A.截取指定字符串后的字符串(例如截取http://后面的字符串)
方法一:
以下是代码片段:
Declare
@S1
varchar(100)
Select
@S1='http://www.xrss.cn'
Select
Substring(@S1,CHARINDEX('www',@S1)+1,Len(@S1))
------------------------------------
显示结果:
www.163.com
需要注意:CHARINDEX函数搜索字符串时,不区分大小写,因此CHARINDEX('www',@S1)也可以写成CHARINDEX('WWW',@S1)
方法二:(与方法一类似)
以下是代码片段:
Declare
@S1
varchar(100)
Select
@S1='http://www.xrss.cn'
Select
Substring(@S1,PATINDEX('%www%',@S1)+1,Len(@S1))
--此处也可以这样写:Select
Substring(@S1,PATINDEX('%//%',@S1)+2,Len(@S1))
------------------------------------
显示结果:
www.163.com
函数PATINDEX与CHARINDEX区别在于:前者可以参数一些参数,增加查询的功能
方法三:
以下是代码片段:
Declare
@S1
varchar(100)
Select
@S1='http://www.xrss.cn'
Select
REPLACE(@S1,'http://','')
------------------------------------
显示结果:
www.163.com
利用字符替换函数REPLACE,将除需要显示字符串外的字符替换为空
方法四:
以下是代码片段:
Declare
@S1
varchar(100)
Select
@S1='http://www.xrss.cn'
Select
STUFF(@S1,CHARINDEX('http://',@S1),Len('http://'),'')
------------------------------------
显示结果:
www.163.com
函数STUFF与REPLACE区别在于:前者可以指定替换范围,而后者则是全部范围内替换
B.截取指定字符后的字符串(例如截取C:\Windows\test.txt中文件名)
与A不同的是,当搜索对象不是一个时,利用上面的方法只能搜索到第一个位置
方法一:
以下是代码片段:
Declare
@S1
varchar(100)
Select
@S1='C:\Windows\test.txt'
select
right(@S1,charindex('\',REVERSE(@S1))-1)
-------------------------------------
显示结果:
text.txt
利用函数REVERSE获取需要截取的字符串长度

❼ 【搬运】Sql Server中截取字符串的常用方法

1、LEFT()  从左边截

语法:LEFT(character,integer)    返回 从字符串左边开始 指定个数的字符

说明:参数1:要截取的字符串,参数2:截取字符个数

示例:selectLEFT('SqlServer_2008',3)

结果:Sql

2.RIGHT()  从右边截

语法:RIGHT(character,integer)   返回 从字符串右边开始 指定个数的字符

说明:参数1:要截取的字符串,参数2:截取字符个数

示例:selectLEFT('SqlServer_2008',4)

结果:2008

3.SUBSTRING()   中间截

语法:SUBSTRING(character,start,length)   返回从字符串 中间 的字符

说明:参数1:要截取的字符串,参数2:开始截取的位数,参数3:要截取的字符长度

示例:selectSUBSTRING('SqlServer_2008',4,6)--4)

结果:Server

以上。

https://www.cnblogs.com/xielong/p/7670757.html

感谢二位!

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

工具/材料:Management Studio。

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

❾ sql server截取某个特定字符前的字符串

left(列名,charindex(特定字符,列名)-1)

left:返回从左边开始指定字符串

charindex:找到特定并返回字符所在位置

select  left(case_name,charindex('_',case_name)-1) from table1  where charindex('_',case_name)-1 > 0

注意:不加where后面的条件会报 “传递给 LEFT 或 SUBSTRING 函数的长度参数无效”的错误。

热点内容
如何选择最佳配置 发布:2025-07-16 01:56:44 浏览:603
mad加密 发布:2025-07-16 01:52:12 浏览:424
linux64位内存 发布:2025-07-16 01:02:36 浏览:960
压缩衣尺码表 发布:2025-07-16 00:47:33 浏览:640
安卓恢复了出厂怎么找回照片 发布:2025-07-16 00:43:56 浏览:933
为什么说服务器已停止响应 发布:2025-07-16 00:29:36 浏览:392
python判断字符串是否为空 发布:2025-07-16 00:21:47 浏览:210
安卓转苹果用什么软件 发布:2025-07-16 00:21:45 浏览:628
安卓官服如何登ios 发布:2025-07-16 00:21:32 浏览:624
天龙抢店脚本 发布:2025-07-16 00:14:47 浏览:958