【问题标题】:How to update records in a table with leading spaces?如何更新带有前导空格的表中的记录?
【发布时间】:2016-06-29 20:11:38
【问题描述】:

我有一个包含 n 条记录和 n 列的表。我想在特定列的记录中添加一些前导空格。我怎样才能做到这一点?

例如: 如果该列有'AAAA' 之类的记录,我希望它类似于' AAA'(前导空格很少)。

【问题讨论】:

  • 你打算失去一个 A 吗?如果有,是哪一个?如果列包含'BBB''XYZ' 怎么办?

标签: informix


【解决方案1】:

我相信您正在寻找的是一种将左侧填充的列复制到由长度指定的总字节数的方法。您可以使用LPAD 来实现它。

但是,如果您想要的只是添加一个空格而不管长度如何,您可以直接执行" " | column_name

【讨论】:

    【解决方案2】:
    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] != '    '
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多