SUBSTR 函数

SUBSTR 函数的作用于 SUBSTRING 函数相同,但两个函数的语法有区别。

要返回字符串的一部分,指定开始位置长度(可选)来确定 SUBSTR 函数返回子串的哪个部分。为 SUBSTR 函数指定的开始位置可以是正数,也可以是负数。然而,SUBSTR 函数用与 SUBSTRING 函数不同的方式处理开始位置中的负数。当开始位置是负数时,SUBSTR 函数从字符串的末尾开始向后计数,这取决于字符串的长度,而不是字符串包含词或可视字符的长度。SUBSTR 函数将开始位置中的零(0)或 1 识别为字符串中的第一个位置。

下列查询显示包括负数作为开始位置的 SUBSTR 函数的一个示例。假定开始位置为 -15,那么 SUBSTR 函数从字符串末尾开始向后数 15 个位置来找到开始位置,然后返回下五个字符。

图: 查询

SELECT sname, SUBSTR(sname, -15, 5) FROM state 
          WHERE code = "CA";

图: 查询结果

sname           (expression)
            
            California      Calif

要使用负数作为开始位置,需要指定求出的长度值。sname 列被定义为 CHAR(15),因此接受类型为 sname 的参数的 SUBSTR 函数可以将开始位置 01-15 用于函数来返回从字符串的第一个位置开始的字符串。

下列查询返回与图 1相同的结果。

图: 查询

SELECT sname, SUBSTR(sname, 1, 5) FROM state 
        WHERE code = "CA";