這樣試試:
update zkcc
set tx=left(xh,(len(xh) - 2))+'.bmp';update zkcc
set tx=left(xh,len(xh) - 4)+right(xh,2)+'.bmp'
where ASCII(right(xh,2)) > 97;update zkcc
set tx=xh+'.bmp'
where left(xh,1)='R';

解决方案 »

  1.   

    执行结果如下,成功了大部分,已是很感激你了,奇怪的是语法没错误,怎么结果还不行?
    (27004 row(s) affected)
    (0 row(s) affected)Server: Msg 8152, Level 16, State 9, Line 8
    String or binary data would be truncated.
    The statement has been terminated.
      

  2.   

    使用case when应该可以的。
    update zkc set tx=case when asc(xh,len(xh))>255  then left(xh,len(xh) - 4)+right(xh,2)+'.bmp' when left(xh,1)='R' then xh+'.bmp' else left(xh,(len(xh) - 2))+'.bmp' end;
      

  3.   

     to pbworm(pb菜鸟),有语法错误呢。
    问题是最后一位是汉字怎么取,怎么写? 第一种情况是可以了,关键是第二种情况,是这样的。当型号的最后一位是汉字时,我要把汉字前的两位去掉,在SQL SERVER 里一个汉字也是一位吗?
    请教高手怎么写?我照上面说的还是不行,请多多指教。谢了!
      

  4.   

    在表里有这样的型号,其最后一位是汉字,我在SQL QUERY ANALYZER里想把这些记录取出来,下面这样的语句不行,那要怎么写呢,请多多指教了。我真的没法子了。
    select * from zkcc
    where right(xh,1)='芯' or right(xh,1)='底'