我在表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进行比较。

10-05 22:51
查看更多