暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T LPAD、RPAD函数填充字符串达到指定长度

原创 章芋文 2019-09-23
808

LPAD

语法:

LPAD(str,pad_len[,pad_str])

功能:从左边对字符串使用指定的字符进行填充,直至字符串长度达到指定长度。可使用此函数格式化查询的输出。

入参str是源字符串,表示准备被填充的字符串(可转成STRING的表达式);入参pad_len是所返回字符串的长度,即填充后的字符串长度(若pad_len<=str长度,则将str截取从左往右的pad_len个字节);入参pad_str表示填充字符串,如果未指定该参数,则默认为空字符。返回值是STRING。

说明:

返回值最大支持8000字节。

示例:

打印员工编号和员工姓名,对员工姓名进行左侧填充至20个字符。

--删除表employee_2017。 
DROP TABLE IF EXISTS employee_2017;
--创建表employee_2017。 
CREATE TABLE employee_2017(employee_id INT NOT NULL,first_name VARCHAR(10),last_name VARCHAR(10), hire_date DATETIME);
--加入记录1。
INSERT INTO employee_2017(employee_id,first_name,last_name,hire_date) VALUES(1001,'Alice','BROWN','2017-06-20 12:00:00');
--加入记录2。
INSERT INTO employee_2017(employee_id,first_name,last_name,hire_date) VALUES(102,'BOB','Smith','2017-10-20 12:00:00');
--加入记录3。
INSERT INTO employee_2017(employee_id,first_name,last_name,hire_date) VALUES(13,'ALAN','Jones','2017-05-10 12:00:00');
--提交事务。
COMMIT;
--对员工姓名进行左侧填充至20个字符。
SELECT employee_id, LPAD (last_name, 20, '.') LAST_NAME FROM employee_2017 ORDER BY last_name;
EMPLOYEE_ID  LAST_NAME
------------ ----------------------------------------------------------------
1001         ...............BROWN
13           ...............Jones
102          ...............Smith
3 rows fetched.


RPAD

语法:

RPAD(str,pad_len[,pad_str])

功能:从右边对字符串使用指定的字符进行填充,直至字符串长度达到指定长度。可使用此函数格式化查询的输出。

入参str是源字符串,表示准备被填充的字符串(可转成STRING的表达式);入参pad_len是所返回字符串的长度,即填充后的字符串长度(若pad_len<=str长度,则将str截取从左往右的pad_len个字节);入参pad_str表示填充字符串,如果未指定该参数,则默认为空字符。返回值是STRING。

说明:

返回值最大支持8000字节。

示例:

拼接输出first_name和last_name,并使用空格对first_name和last_name进行右侧填充至12个字符。

--删除表employee_2017。 
DROP TABLE IF EXISTS employee_2017;
--创建表employee_2017。 
CREATE TABLE employee_2017(employee_id INT NOT NULL,first_name VARCHAR(10),last_name VARCHAR(10), hire_date DATETIME);
--加入记录1。
INSERT INTO employee_2017(employee_id,first_name,last_name,hire_date) VALUES(1001,'Alice','BROWN','2017-06-20 12:00:00');
--加入记录2。
INSERT INTO employee_2017(employee_id,first_name,last_name,hire_date) VALUES(102,'BOB','Smith','2017-10-20 12:00:00');
--加入记录3。
INSERT INTO employee_2017(employee_id,first_name,last_name,hire_date) VALUES(13,'ALAN','Jones','2017-05-10 12:00:00');
--提交事务。
COMMIT;
--拼接输出first_name和last_name,并使用空格对first_name和last_name进行右侧填充至12个字符。
SELECT CONCAT(RPAD (first_name,12), RPAD (last_name,12)) FROM employee_2017 ORDER BY first_name, last_name;

CONCAT(RPAD (FIRST_NAME,12), RPAD (LAST_NAME,12))
----------------------------------------------------------------
ALAN        Jones
Alice       BROWN
BOB         Smith

3 rows fetched.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论