我有一个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';
3条答案
按热度按时间bzzcjhmw1#
使用PostgreSQL的
trim()
函数,其中有trim()
、rtrim()
和ltrim()
。要修剪 * 尾随空格 *:
如果
acct_type_desc
不是text
orvarchar
类型,请先将其转换为文本:如果
acct_type_desc
的类型为char(n)
,则将其强制转换为text
会自动删除尾随空格,不需要trim()
。3zwtqj6y2#
除了其他人所说的之外,向该列添加一个
CHECK CONSTRAINT
,这样,如果忘记在INSERT语句中传递rtrim()
函数,检查约束也不会传递。例如,检查字符串的尾随空格(在末尾):
另一个例子,检查前导和尾随空格,以及字符串中间的白色):
5f0d552i3#
acct_desc
的类型是什么?