更新2个字段 - 将最后一个数字从1个字段推送到另一个字段的开头

时间:2015-03-03 20:58:36

标签: sql

我的SQL表中有2个字段。一个有5个数字(例如:12345),第二个字段有2个数字(例如:99)我需要知道是否有办法从第一个字段中获取最后一个数字并将其推送到第二个字段的开头。所以第一个字段是1234,第二个字段是599 ???

3 个答案:

答案 0 :(得分:0)

UPDATE YourTable
    SET Column2 = RIGHT(Column1, 1) + COALESCE(Column2, ''),
        Column1 = LEFT(Column1, LEN(Column1)-1)
    WHERE COALESCE(LEN(Column1), 0) > 1;

答案 1 :(得分:0)

这是一个典型的"这样做的方法。

update t
    set col1 = left(col1, length(col1) - 1),
        col2 = concat(right(col1, 1), col2);

具体细节取决于数据库。

注意:

  • 这种假设值存储为字符串,但逻辑将从数字中来回转换。
  • left()right()函数可能因数据库而异,但大多数数据库都支持它们。
  • concat()可能会被适当的运营商所取代,具体取决于数据库(' ||',' +','&&# 39 ;,脑海中浮现)。
  • length()有时称为len()

答案 2 :(得分:0)

如果它是整数列:

update tablename set
   c1 = c1/10,
   c2 = mod(c1,10)*dpower(10,ceiling(dlog10(c2)))+c2