跳到主要内容

STRRIGHT

描述

STRRIGHT 函数(别名 RIGHT)用于从字符串的右侧截取指定长度的字符。

别名

RIGHT

语法

STRRIGHT(<str>, <len>)
RIGHT(<str>, <len>)

参数

参数说明
<str>需要截取的源字符串。类型:VARCHAR
<len>要返回的字符数量。类型:INT

返回值

返回 VARCHAR 类型,表示从字符串右侧截取的部分。

截取规则:

  • 从字符串右侧开始计算指定长度的字符
  • 如果长度超过字符串长度,返回整个字符串
  • 支持负数长度的特殊处理

特殊情况:

  • 如果任一参数为 NULL,返回 NULL
  • 如果 len 为 0,返回空字符串
  • 如果 len 为负数,返回从左侧第 abs(len) 个字符开始到右侧的部分
  • 如果 len 大于字符串长度,返回整个字符串
  • 如果字符串为空,返回空字符串

示例

  1. 基本右侧截取
SELECT STRRIGHT('Hello doris', 5), RIGHT('Hello doris', 5);
+----------------------------+------------------------+
| STRRIGHT('Hello doris', 5) | RIGHT('Hello doris', 5) |
+----------------------------+------------------------+
| doris | doris |
+----------------------------+------------------------+
  1. 不同长度的截取
SELECT STRRIGHT('Hello World', 3), STRRIGHT('Hello World', 8);
+-----------------------------+-----------------------------+
| STRRIGHT('Hello World', 3) | STRRIGHT('Hello World', 8) |
+-----------------------------+-----------------------------+
| rld | lo World |
+-----------------------------+-----------------------------+
  1. NULL 值处理
SELECT STRRIGHT(NULL, 5), STRRIGHT('Hello doris', NULL);
+-------------------+-------------------------------+
| STRRIGHT(NULL, 5) | STRRIGHT('Hello doris', NULL) |
+-------------------+-------------------------------+
| NULL | NULL |
+-------------------+-------------------------------+
  1. 空字符串和零长度
SELECT STRRIGHT('', 5), STRRIGHT('Hello World', 0);
+-------------------+-----------------------------+
| STRRIGHT('', 5) | STRRIGHT('Hello World', 0) |
+-------------------+-----------------------------+
| | |
+-------------------+-----------------------------+
  1. 负数长度处理
SELECT STRRIGHT('Hello doris', -7), STRRIGHT('Hello doris', -5);
+-----------------------------+-----------------------------+
| STRRIGHT('Hello doris', -7) | STRRIGHT('Hello doris', -5) |
+-----------------------------+-----------------------------+
| doris | o doris |
+-----------------------------+-----------------------------+
  1. 超出字符串长度
SELECT STRRIGHT('ABC', 10), STRRIGHT('short', 20);
+---------------------+-----------------------+
| STRRIGHT('ABC', 10) | STRRIGHT('short', 20) |
+---------------------+-----------------------+
| ABC | short |
+---------------------+-----------------------+
  1. UTF-8 多字节字符
SELECT STRRIGHT('ṭṛì ḍḍumai hello', 5), STRRIGHT('ṭṛì ḍḍumai hello', 11);
+----------------------------------+-----------------------------------+
| STRRIGHT('ṭṛì ḍḍumai hello', 5) | STRRIGHT('ṭṛì ḍḍumai hello', 11) |
+----------------------------------+-----------------------------------+
| hello | ḍumai hello |
+----------------------------------+-----------------------------------+
  1. 数字字符串处理
SELECT STRRIGHT('123456789', 3), STRRIGHT('ID_987654321', 6);
+----------------------------+-------------------------------+
| STRRIGHT('123456789', 3) | STRRIGHT('ID_987654321', 6) |
+----------------------------+-------------------------------+
| 789 | 654321 |
+----------------------------+-------------------------------+
  1. 电子邮件域名提取
SELECT STRRIGHT('user@example.com', 11), STRRIGHT('admin@company.org.cn', 14);
+----------------------------------+--------------------------------------+
| STRRIGHT('user@example.com', 11) | STRRIGHT('admin@company.org.cn', 14) |
+----------------------------------+--------------------------------------+
| example.com | company.org.cn |
+----------------------------------+--------------------------------------+