展开全部
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 的表达式,指定子字符串的长度
如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 的表达式,指定子字符串的长度
展开全部
如果你是想将查询结果去掉空格,可以用trim
select trim(table.column from table
如果你是想要查询结果中,空格前面的字符,可以使用以下方法
select substr(table.column,1,instr(table.column,' ')) from table
就是数据库简单的字符串函数的应用。
select trim(table.column from table
如果你是想要查询结果中,空格前面的字符,可以使用以下方法
select substr(table.column,1,instr(table.column,' ')) from table
就是数据库简单的字符串函数的应用。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
兄弟思路是这样的主要用的函数
PATINDEX('% %',CC)查找空格所在的位置,然后结合RIGHT 和LEFT函数;层层来取。
具体语句如下:(你的的时候将字段CC换成你的字段,CYG表换成你的表)
SELECT LEFT(CC,PATINDEX('% %',CC)-1) AS A,
LEFT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-1) AS B,
LEFT(RIGHT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),LEN(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-
PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))),
PATINDEX('% %',RIGHT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),LEN(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-
PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))))-1) AS C,
LEFT(RIGHT(RIGHT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),LEN(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-
PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))),LEN(RIGHT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),LEN(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-
PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))))-
PATINDEX('% %',CC)查找空格所在的位置,然后结合RIGHT 和LEFT函数;层层来取。
具体语句如下:(你的的时候将字段CC换成你的字段,CYG表换成你的表)
SELECT LEFT(CC,PATINDEX('% %',CC)-1) AS A,
LEFT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-1) AS B,
LEFT(RIGHT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),LEN(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-
PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))),
PATINDEX('% %',RIGHT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),LEN(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-
PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))))-1) AS C,
LEFT(RIGHT(RIGHT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),LEN(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-
PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))),LEN(RIGHT(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)),LEN(RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))-
PATINDEX('% %',RIGHT(CC,LEN(CC)-PATINDEX('% %',CC)))))-
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询