在插入过程中防止尾随空格?

pre*_*ose 4 postgresql whitespace types trim insert

我有这个INSERT语句,acct_desc字段末尾似乎有尾随空格.我想知道如何防止在insert语句中出现尾随空格.

INSERT INTO dwh.attribution_summary
SELECT d.adic,
       d.ucic,
       b.acct_type_desc as acct_desc,
       a.begin_mo_balance as opening_balance,
       c.date,
      'fic' as userid
FROM  fic.dim_members d 
JOIN  fic.fact_deposits a ON d.ucic = a.ucic 
JOIN  fic.dim_date c ON a.date_id = c.date_id 
JOIN  fic.dim_acct_type b ON a.acct_type_id = b.acct_type_id
WHERE c.date::timestamp = current_date - INTERVAL '1 days';
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 5

使用PostgreSQL trim()函数.
trim(),rtrim()ltrim().修剪尾随空格:

...
rtrim(b.acct_type_desc) as acct_desc,
...
Run Code Online (Sandbox Code Playgroud)

如果acct_type_desc不是类型text或者varchar首先将其强制转换为文本:

...
rtrim(b.acct_type_desc::text) as acct_desc,
...
Run Code Online (Sandbox Code Playgroud)

如果acct_type_desc是类型char(n),则将其强制转换为文本会自动删除尾随空格,没有trim()必要.