问题描述
我有一张看起来像这样的桌子。
ID | Salary| Name|
_________________________
1 | 50000| Lee
2 | 60000| Camile
3 | 70000| Luther
每个名称前面都有一个空格;如果我想从所有条目中删除该空间,该怎么办?我尝试使用regexp_replace,但是语法不正确。
到目前为止,我已经提出了这个建议,但是我不知道如何使它起作用。
CREATE EXTERNAL TABLE IF NOT EXISTS Emp(id string,salary int,name string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ':'
STORED AS TEXTFILE LOCATION '/user/xxx/employee/'
TBLPROPERTIES ('skip.header.line.count'='3');
AS SELECT name,REGEXP_REPLACE(name,' ')
FROM emp;
解决方法
您可以使用ltrim
函数从字符串中删除所有结尾的空格。
select id,salary,ltrim(name) as name from your_table;
类似地,rtrim
函数从字符串中删除所有前导空格。
select id,rtrim(name) as name from your_table;
trim
函数将删除所有前导和尾随空格
select id,trim(name) as name from your_table;