在表中存档旧信息

时间:2014-11-20 12:42:25

标签: sql database sql-server-2008-r2

我想将旧信息存档在我的表格中。

如果T1C2中的值是一个数字(或少于5个字符),那么我想将其替换为存档一词和T1C1中的值。

 T1C1  T1C2 

  1     London
  2     New York
  3     2342
  4     Cardiff  
  5     2394
  6     Sydney
  7     2342
  8     2343
  9     7345

结果

  T1C1  T1C2   

  1     London
  2     New York
  3     Archive3
  4     Cardiff  
  5     Archive5
  6     Sydney
  7     Archive7
  8     Archive8
  9     Archive9

2 个答案:

答案 0 :(得分:1)

您可以通过更新执行此操作:

update mytable
    set t1c2 = 'Archive' + cast(t1c1 as varchar(255))
    where t1c2 not like '%[^0-9]%';

您也可以isnumeric()使用where,但我需要检查其他条件:

where isnumeric(t1c2) = 1 and t1c2 not like '%[.e]%'

答案 1 :(得分:1)

试试这个:

UPDATE yourtable
SET    T1C2 = 'Archive' + Cast(T1C1 AS VARCHAR(100))
WHERE  isnumeric(T1C2) = 1
        OR Len(T1C2) < 5