sql substring函数用法,截取指定长度字符串

发布时间:2019-09-25编辑:脚本学堂
有关sql server中substring函数的用法,substring函数用于截取指定的字符串,需要的朋友参考下。

substring 函数取一个栏位资料中的其中一部分。

这个函数的名称在不同的资料库中不完全一样:

mysql: SUBSTR( ), SUBSTRING( )
Oracle: SUBSTR( )
SQL Server: SUBSTRING( )

常用方式:
SUBSTR (str, pos)
由 <str> 中,选出所有从第 <pos> 位置开始的字元。请注意,这个语法不适用于 SQL Server 上。

SUBSTR (str, pos, len)
由 <str> 中的第 <pos> 位置开始,选出接下去的 <len> 个字元。

假设,表格:
Geography 表格
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego

例1:
 

SELECT SUBSTR (Store_Name, 3)
FROM Geography
WHERE Store_Name = 'Los Angeles';

结果:
's Angeles'

例2:
 

SELECT SUBSTR (Store_Name, 2, 4)
FROM Geography
WHERE Store_Name = 'San Diego';

结果:
'an D'

sql数据库中substr函数注意事项

substr只能作为处理英文字符串的函数使用,对于汉字往往会引起缺陷。举例说明如下:
1、substr('一二三四',1,5)
2、substr('一二三四五六',1,5)

第一个的正确答案是“一二三四”,而第二的正确答案是“一二三四五”。

在程序中使用substr函数作为一个输入语句的控制,比如更新表中一条数据,如果表中某一属性要求5位长度,会用上述两条语句保证不插入过长的语句,引起数据库报错 。例如:
 

UPDATE <em>SCHOOL </em>
SET <em>dept_no</em>=substr('高十二班',1,5)
WHERE <em>id</em>=12

其中dept_no要求5位数据。
但是,substr对于非英文字符不能起到我们想要的效果。
由于每个汉字占2位,但是substr会把一个汉字当做字符串中的一位。
当用这条语句更新数据库表中要求长度只有5的属性时,会报错的。