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

sql语句可以截取指定字段后面的字符串,以sqlserver为例,需要用到charindex函数和substring函数。

sqlserver截取 sqlserver截取字符串sqlserver截取 sqlserver截取字符串


sqlserver截取 sqlserver截取字符串


如test表中有如下数据,要求截图str字段中逗号后边的内容。

可用如下语句:

1select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;

结果截图:

charindex函数说明:

语法:

CHARINDEX ( expression1 , expression2 , [ start_location ] )

参数:

expression1

一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。

expression2

一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。

start_location

在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。

substring函数说明:

语法:

substring( expression, start, length)

参数:expression 字符串、二进制字符串、文本、图像、列或包含列的表达式start 整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置length 整数或可以隐式转换为 int 的表达式,指定子字符串的长度

sqlserver时间类型数据的截取

时间类型的截取不能直接left等,需要 convert成varchar等字符类型

select left(convert(varchar,add_time,120),10) from shikongdb..dt_orders

select left(add_time,10) from shikongdb..dt_orders

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

sql语句可以截取指定字段后面的字符串,以sqlserver为例,需要用到charindex函数和substring函数。

如test表中有如下数据,要求截图str字段中逗号后边的内容。

可用如下语句:

select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;

结果截图:

charindex函数说明:

语法:

CHARINDEX ( expression1 , expression2 , [ start_location ] )

参数:

expression1

一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。

expression2

一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。

start_location

在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。

substring函数说明:

语法:

substring( expression, start, length)

参数:expression 字符串、二进制字符串、文本、图像、列或包含列的表达式start 整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置length 整数或可以隐式转换为 int 的表达式,指定子字符串的长度

sqlserver在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():返回某个被请求的文本域的右侧部分

参考资料来源:

sqlserver截取日期的年份和月份怎么写?

sqlserver截取日期年份和月份使用datepart函数,函数使用方法如下:

一、函数功能:DATEPART()函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

二、语法:DATEPART(datepart,date)

三、参数说明:date 参数是合法的日期表达式。datepart 参数可以是下列的值:

四、实例

1、截取年份:datepart(yy,'2017-1-1')返回:2017

2、截取月份:datepart(mm,'2017-1-1')返回:1

五、datepart函数返回的是整型数值,如果需要返回字符型,那么使用datename()函数,用法与datepart相同,只是返回数据类型不同。