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:
结果:
's Angeles'
例2:
结果:
'an D'
sql数据库中substr函数注意事项
substr只能作为处理英文字符串的函数使用,对于汉字往往会引起缺陷。举例说明如下:
1、substr('一二三四',1,5)
2、substr('一二三四五六',1,5)
第一个的正确答案是“一二三四”,而第二的正确答案是“一二三四五”。
在程序中使用substr函数作为一个输入语句的控制,比如更新表中一条数据,如果表中某一属性要求5位长度,会用上述两条语句保证不插入过长的语句,引起数据库报错 。例如:
其中dept_no要求5位数据。
但是,substr对于非英文字符不能起到我们想要的效果。
由于每个汉字占2位,但是substr会把一个汉字当做字符串中的一位。
当用这条语句更新数据库表中要求长度只有5的属性时,会报错的。