×

sql截取字符串前几位 字符 sql

sql截取字符串前几位(sql怎么取字符串的前几位)

admin admin 发表于2023-11-14 20:32:06 浏览33 评论0

抢沙发发表评论

本文目录

sql怎么取字符串的前几位

sql语句截取字符串前几位语句:selectsubstr(cont_no,1,9)fromfor_contractSUBSTRING(expression,start,length)expression:是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。start:是一个整数,指定子串的开始位置。length:是一个整数,指定子串的长度(要返回的字符数或字节数)。eg:selectidfromusersid的值是001.002$ selectsubstring(ID,charindex(’.’,ID)+1,(charindex(’$’,ID)-charindex(’.’,ID)-1))asidx

sql如何截取字符串中前面的数字

如果提取字符串中的数字,需要自定义函数,以下函数包含截取字符串中的数字、字母、汉字等。

create function fn_myget(@str as varchar(max),@category as varchar(10)=’Chinese’,@start as int=1,@end as int=100000)returns varchar(max)asbegin declare @i int=@start declare @lenstr int=len(@str) declare @str1 varchar(max) declare @strre varchar(max)=’’ while @i《=@lenstr and @i《=@end  begin  set @str1=substring(@str,@i,1);  --提取汉字  if(@Category=’Chinese’)   begin   if(len(@str1)!=datalength(@str1))   set @strre=@strre+@str1   end  --提取字母  else if(@Category=’Letters’)   begin   if((ascii(@str1)》=65 and ascii(@str1)《=90 or ascii(@str1)》=97 and ascii(@str1)《=122))   set @strre=@strre+@str1   end  --提取数字  else if(@Category=’Digital’)   begin   if(ascii(@str1)》=48 and ascii(@str1)《=57)   set @strre=@strre+@str1   end  else   set @strre=’输入错误’  set @i=@i+1  end return(@strre)end

测试:

1、截取字符串dsajf23423423中的数字

select dbo.fn_myget(’dsajf23423423’,’Digital’,1,1000)

结果:

2、截取字符串dsajf23423423中的字母

select dbo.fn_myget(’dsajf23423423’,’Letters’,1,1000)

结果:

3、截取“说多了几分134lljjf爱”中的中文

select dbo.fn_myget(’说多了几分134lljjf爱’,’Chinese’,1,1000)

结果:

自定义函数说明:

函数共需要4个参数:

第一个参数是要截取的字符串;

第二个参数根据要截取的内容不同,分别有“Digital”(截取数字)、“Letters”(截取字母)、“Chinese”(截取中文);

第三个参数代表截取的起始位;

第四个参数代表截取的截取的结束位。

简单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’) → 返回3select charindex(’ab’,’BCabTabD’,4) →返回6二、用到的函数:left(’ ’, )、charindex(’ ’,’ ’)select LEFT(’hello@163.com’,charindex(’@’,’hello@163.com’)-1)1.left(字符串表达式,整数表达式):从字符串表达式的最左边开始截取整数表达式个字符。例如:select left(’abcdef’,3) →返回abc

sql中如何在where字句里截取某个字段的前几位字符

sql中在where字句里截取字符方法如下:

1、如果是sqlserver:where left(p.end_time,4) = '2012'。

2、如果是Oracle:where substr(p.end_time,0,4) = '2012'。

举例:

1、oracle: 'where substr(字段名,1,2)='''123''''

2、sqlserver: 'where substring(字段名,1,2)='''123''''

扩展资料:

sql中,常用函数介绍:

1、AVG():返回平均值

2、COUNT():返回行数

3、FIRST():返回第一个记录的值

4、LAST():返回最后一个记录的值

5、MAX():返回最大值

6、MIN():返回最小值

7、SUM():返回总和

8、UCASE():将某个字段转换为大写

9、LCASE():将某个字段转换为小写

10、MID():从某个文本字段提取字符

11、LEN():返回某个文本字段的长度

12、ROUND():对某个数值字段进行指定小数位数的四舍五入

13、NOW():返回当前的系统日期和时间

14、FORMAT():格式化某个字段的显示方式

15、INSTR():返回在某个文本域中指定字符的数值位置

16、LEFT():返回某个被请求的文本域的左侧部分

17、RIGHT():返回某个被请求的文本域的右侧部分

参考资料来源:百度百科-SQL函数

sql取特定字符的前面几位字符

select substr(’L-0FCLDRBCT-dsfsdfs’,1,instr(’L-0FCLDRBCT-dsfsdfs’,’-’,1,2)-1) from dual;首先用函数instr找到字符串中第二个”-”的位置,返回数字然后使用substr函数从1一直截取到上步骤返回的数字。

sql 查询字段中的前几个字

可以使用:substr( string, start_position, :提取的字符数,如果省略,substr将返回整个字符串;

针对本例举例说明:

select * from 表名 where substr(,1,2)=“10”

语句功能说明:从指定表中查询D字段第1、2个字符为“10的记录”。

扩展资料:

注意事项

语法:substr(string,start,length)

string参数:必选。数据库中需要截取的字段。

start参数:必选。

正数,从字符串指定位子开始截取;负数,从字符串结尾指定位子开始截取;0,在字符串中第一个位子开始截取。1,同理。(特殊)

length参数:可选。需要截取的长度。缺省,即截取到结束位置。 

注意:若必选参数为空,那返回的结果也为空。

sql中截取指定字符的前几位

select substring(ID,charindex(’.’,ID)+1,(charindex(’$’,ID)-charindex(’.’,ID)-1)) as idx

oracle中 sql截取某个字符前面和后面的值

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

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

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

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

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

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