我尝试结合使用前两个问题Question 1 Question 2来帮助解决我的问题。
我的问题是我试图将DB2中的一列设置为等于具有开始和结束值的另一列。我可以选择在两个步骤中执行此操作,首先添加S-然后在第二次添加时添加-000,但我目前遇到的问题是CONCAT不能像在MYSQL中那样在DB2中工作。
转换前
name | loc | group
-----------------------------------
sam | 123 |
jack | 456 |
jill | 987 |
mark | 456 |
allen | 123 |
john | 789 |
tom | 123 |
转换后的
name | loc | group
-----------------------------------
sam | 123 | S-123-000
jack | 456 | S-456-000
jill | 987 | S-987-000
mark | 456 | S-456-000
allen | 123 | S-123-000
john | 789 | S-789-000
tom | 123 | S-123-000
我正在尝试使用的SQL:
UPDATE table
SET GROUP = CONCAT('S-',LOC,'-000')
WHERE LENGTH(RTRIM(LOC)) = 3
任何帮助或指导都将不胜感激。
答案 0 :(得分:1)
DB2 CONCAT只接受两个参数,因此您可以嵌套它们以获得所需的结果。
UPDATE table
SET GROUP = CONCAT(CONCAT('S-',LOC),'-000')
WHERE LENGTH(RTRIM(LOC)) = 3
答案 1 :(得分:1)
还有一个连接运算符:||
但有些人建议不要使用它
UPDATE table
SET GROUP = 'S-'||LOC||'-000'
WHERE LENGTH(RTRIM(LOC)) = 3
如果您的LOC字段长于3且您不想要空格
UPDATE table
SET GROUP = 'S-'||RTRIM(LOC)||'-000'
WHERE LENGTH(RTRIM(LOC)) = 3