首页 > 解决方案 > DB2 - 用于生成自定义长度为一个字符的字符串的 SQL 语法

问题描述

我有一个具有以下状态的数据库表:

Id           Animal     Length      Filler 
------------ --------- ----------- ------------- 
1            DOG      1                         
2            DOG      3                         
3            DOG      8                         
4            DOG      4                         
5            DOG      8        

场景:我尝试通过数据库列中具有相同字符的长度字段的长度生成字符串(比如说'x')。所以 Id 1 的填充符应该是“x”。

这应该以通用方式工作。所以如果长度为 4,它应该创建字符串 'xxxx'。如果长度为 8 'xxxxxxxx' 等。

需要:它应该更新值,以防这是一只狗。我熟悉通过限制 where 条件来更新和选择,但是我不知道如何为另一个选定列的数量创建仅包含相同字符的字符串。

标签: sqldb2

解决方案


使用repeat()功能:

update tablename
set Filler = repeat('x', length)
where Animal = 'DOG'

但是,如果更新了长度值,我宁愿避免数据不一致,而不是 Filler。或者,至少使用触发器。


推荐阅读