我已经编写了一个查询,当条目的长度为<时,我将在表A中搜索column1。 8个字符。查询通常是这样的:
SELECT A.Column1, A.Column2
FROM SCHEMA.A as A
WHERE length(A.Column1) < '8';
这让我得到了我期望的所有结果。现在我要做的是每个结果中的每一个我想在每个结果中的第4个字符后添加一个' - '字符。例如,如果我的原始查询生成了一个column1为1234567的行,我希望它更新为1234-567。对于所有返回的行都是如此。我可以使用java代码执行此操作,但我希望编写一个sql脚本,因为它更快,不会丢弃。我查看了各种db2 Update语法示例,但没有显示我正在寻找的内容。请帮忙!
答案 0 :(得分:2)
您可以使用INSERT()
function:
UPDATE SCHEMA.A
SET Column1 = INSERT(Column1, 5, 0, '-')
WHERE length(A.Column1) < 8;
在执行更新之前使用SELECT
尝试此操作。
此外,length()
会返回一个数字。比较值应该是数字,而不是字符串。
答案 1 :(得分:1)
我想你不想添加&#39; - &#39;如果你的列长度是&lt; 4 示例:123你不想要123-,而1234你不想要1234-然后你必须纠正你喜欢它的地方:
UPDATE SCHEMA.A
SET Column1 = left(Column1, 4) || '-' || substr(Column1, 5)
WHERE length(Column1) between 4 and 7;