我在表1上有两列(A和B),只有在B的开头不是A的情况下,我想将它们连接到另一列(C),如果不是这样,只需将B复制到C中。
这里的关键点是A和B没有固定的长度,所以我认为不能使用left(),因为它需要特定的长度。
例如:
ID A B
1 5 48721
2 98 98555
3 98 136
4 841 8417740313
5 841 133889
在这种情况下,C列应包括:
对于ID=1:548721
对于ID=2:98555
对于ID=3:98136
对于ID=4:8417740313
对于ID=5:841133889
我在尝试:
UPDATE 1
SET C = B
WHERE LEFT (B) = A
UPDATE 1
SET C = concat(A,B)
WHERE LEFT(B) <> A
但它不起作用,因为我需要给left()一个固定的长度。你们会怎么做?
最佳答案
你好像想要这样的东西:
UPDATE t
SET C = (CASE WHEN B LIKE A || '%' THEN B ELSE A || B END);
也就是说,您可以使用
LIKE
进行比较。