数据库截取字符串
① mysql的查询中怎么截取字符串
要视情况而定,不同的要求有不同的截取办法。
可分为从左往右截取,从右往左截取,从第几位截取,关键字截取。步骤如下。
② 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获取需要截取的字符串长度
③ substring的用法 怎么截取字符串
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串索引末尾。在SQLserver数据库中,用于截取字符串的某部分。
subString的用法
public static void main(String[] args) {
// substring(beginIndex,endindex); 根据索引用来截取 String 类型的值 返回一个新的字符串
// 参数: beginIndex - 开始处的索引(包括)。
// endindex 结尾处索引(不包括)。
String s="abcdef"; //重
s= s.substring(1,5);
System.out.println(s);
}
substring双语例句
The Substring function will extract text from a source string.
Substring函数将从一个源字符串中提取文本。
Improved Algorithm for BM String Matching Based on Prefix Substring
基于前缀的BM串匹配改进算法
Scalable Distributed Data Structure for Substring Searching
具有子串检索功能的可扩展分布式数据结构
Returns the index of the first character of a specified substring in a string.
返回指定子串首字符在串中的索引。
The length argument specifies the length of the desired substring.
长度参数指定了所需子字符串的长度。
④ mssql数据库截取字符
mssql中截取字符串可以用left,right,substring函数。
left,是从字符左边开始截取,如:截取abcdefg字符串中的前三个字符:
selectleft('abcdefg',3);
其中3为截取的长度。
rigth是从字符右边开始截取,如截取abcdefg字符串中的后三个字符:
selectright('abcdefg',3);
其中3为截取的长度。
substring,是从任意位置截取,如截取abcdefg字符串中的第二到第四个字符:
selectsubstring('abcdefg',2,3);
其中2为开始截取的位数,3为截取的长度。
⑤ 数据库中substr是什么意思
数据库中substr的意思是用来对字符串进行截取。表示被截取的字符串或字符串表达式。
语法:substr(strings|express,m,[n]) strings|express :被截取的字符串或字符串表达式,m 从第m个字符开始截取,n 截取后字符串长度为n。
函数参数start或length任意值为空,那么结果为空。
(5)数据库截取字符串扩展阅读
datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格。
substring(expression,start,length) 不多说了,取子串。
right(char_expr,int_expr) 返回字符串右边int_expr个字符。
upper(char_expr) 转为大写
lower(char_expr) 转为小写
space(int_expr) 生成int_expr个空格
replicate(char_expr,int_expr)复制字符串int_expr次
reverse(char_expr) 反转字符串
⑥ 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
⑦ Oracle中如何截取字符串的后10位
1、使用Oracle语句select substr('12345',greatest( -位数,-length('12345')),位数) from al。输入后程序会自动截取该字符串的指定长度。
2、表达式中的“位数”输入格式是数字形式。如截取后10位,则输入数字10,也可以使用这个语句substr(字符串,截取开始位置,截取长度)。
3、这个公式需要注意的是,若最后一个截取长度参数为空,则表示从截取开始位置起截到最末。若截取开始位置 为大于0的数字,则表示从字符串左数几位开始。若截取开始位置 为小于0的数字,则表示从字符串右数几位开始。
(7)数据库截取字符串扩展阅读:
字符串的转化方法如下:
可以用 (string) 标记或者strval()函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。例如当使用echo()或者print()函数时,或者将一个变量值与一个字符串进行比较的时候。阅读手册中有关类型和类型戏法中的部分有助于更清楚一些。参见settype()。
布尔值TRUE将被转换为字符串 "1",而值FALSE将被表示为 ""(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。
整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。
数组将被转换成字符串 "Array",因此无法通过echo()或者print()函数来输出数组的内容。请参考下文以获取更多提示。
对象将被转换成字符串 "Object"。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数get_class()。自 php 5 起,如果合适可以用 __toString() 方法。
资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 php 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数get_resource_type()。
NULL将被转换成空字符串。
正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。请参阅函数print_r()和var_mp(),对于调试来说,这些是更好的打印值的方法。
可以将 php 的值转换为字符串以永久地储存它们。这种方法被称为序列化,可以用函数serialize()来完成该操作。如果在安装 php 时建立了 WDDX 支持,还可以将 php 的值序列化为 XML 结构。
Oracle的功能:
数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。
控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。
数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。
日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
参数文件:记录基本参数。spfile和pfile。
警告文件:show parameter background_mp_dest---使用共享服务器连接。
跟踪文件:show parameter user_mp_dest---使用专用服务器连接。
⑧ 截取字符串函数显示类型错误
不同的变易语言有不同的截取字符串的函数,错误类型也不相同,以下提供的是数据库字符串截取问题
在varchar(1000)上报错字符串截断,于是改为varchar(8000)仍然报错。
通过对该条语句插入的记录进行多次修改并测试,发现“记录超长”错误不是某个字段长度超过了定义的字段类型长度,而是该条记录的所有字段的值加在一起超过了一定长度。
这个“长度”是由数据库的页大小决定的,即达梦数据库中一行记录的所有字段的实际长度的和不能超过页大小的一半
在达梦数据库中,一行记录所有字段长度累加不能大于下表:
解决方法
目前测试过的解决方法如下:
重新创建数据库,将数据库的页大小设为“16K”或以上;
达梦数据页大小在创建数据库时设置,设定之后不能更改。
将字段类型改为TEXT、CLOB、BLOB等大字段。
在数据库文件中,TEXT、CLOB、BLOB等大字段采用和普通字段不同的、特殊的存储方式,不占用该条记录的页大小。