【发布时间】:2016-06-29 20:11:38
【问题描述】:
我有一个包含 n 条记录和 n 列的表。我想在特定列的记录中添加一些前导空格。我怎样才能做到这一点?
例如:
如果该列有'AAAA' 之类的记录,我希望它类似于' AAA'(前导空格很少)。
【问题讨论】:
-
你打算失去一个 A 吗?如果有,是哪一个?如果列包含
'BBB'或'XYZ'怎么办?
标签: informix
我有一个包含 n 条记录和 n 列的表。我想在特定列的记录中添加一些前导空格。我怎样才能做到这一点?
例如:
如果该列有'AAAA' 之类的记录,我希望它类似于' AAA'(前导空格很少)。
【问题讨论】:
'BBB' 或'XYZ' 怎么办?
标签: informix
我相信您正在寻找的是一种将左侧填充的列复制到由长度指定的总字节数的方法。您可以使用LPAD 来实现它。
但是,如果您想要的只是添加一个空格而不管长度如何,您可以直接执行" " | column_name。
【讨论】:
UPDATE TheAnonymousTable
SET TheEponymousColumn = ' ' || TheEponymousColumn
WHERE TheEponymousColumn[1,4] != ' '
这几乎总是有效的。在某些情况下(如果您使用的是 MODE ANSI 数据库 - 如果您不确定,则不是)并且如果您的数据已经在列长度的 4 个空格内,您将收到错误 @ 987654322@。在上下文中,如果您知道列的长度是 32 并且您要插入 4 个空格,那么您需要改为这样写:
UPDATE TheAnonymousTable
SET TheEponymousColumn = ' ' || TheEponymousColumn[1,28]
WHERE TheEponymousColumn[1,4] != ' '
【讨论】: