我在sql server的查询视窗下要做如下两个操作
1。将表tablename的所有记录的字段fieldname1(是5位整型值,如99502)值都相应减40000怎么写这个sql 语句?
2。将表tablename的所有记录的字段fieldname2(是字符串,如X99502)值都相应改为X后面的数字减去40000,(结果是X59502)怎么写这个sql 语句?

解决方案 »

  1.   

    select fieldname1-40000 from tablename
    select right(fieldname2,len(fieldname2)-1)-40000 from tablename
    ?
      

  2.   

    SELECT CASE len(fieldname1)
      WHEN 5 THEN fieldname1 - 40000 
       ELSE fieldname1 END as fieldname1,
       right(fieldname2,len(fieldname2)-1)-40000
    FROM tablename
      

  3.   

    1.select fieldname1=fieldname1-40000 from tablename
    2.select fieldname2='X'+cast(replace(fieldname2,'X','')-40000 as int) from tablename
      

  4.   

    --改下
    select fieldname1=fieldname1-40000 from tablename,
    fieldname2='X'+cast(replace(fieldname2,'X','')-40000 as varchar) from tablename
      

  5.   

    1。将表tablename的所有记录的字段fieldname1(是5位整型值,如99502)值都相应减40000怎么写这个sql 语句?--------------------select cast(left(cast(fieldname1 as varchar(10)),5)as int )-400002。将表tablename的所有记录的字段fieldname2(是字符串,如X99502)值都相应改为X后面的数字减去40000,(结果是X59502)怎么写这个sql 语句?
    select substring(fieldname2,1,1)+ cast(cast(substring(fieldname2,2,5)as int)-40000 as varchar(10))
      

  6.   

    1. update tablename set fieldname1 = fieldname1-40000 2. update tablename set  fieldname2 = left(fieldname2,1) + cast( (right(fieldname2,4) - 4000) as varchar)
      

  7.   

    select fieldname1=fieldname1-40000,
    fieldname2='X'+cast(replace(fieldname2,'X','')-40000 as varchar) from tablename
      

  8.   

    select left(fieldname2,len(fieldname2)-patindex('%[0-9]%',fieldname2))+right(fieldname2,len(fieldname2)-patindex('%[0-9]%',fieldname2)+1)-40000 from tablename这是X59502 不确定的情况,如XG59502
      

  9.   

    我要的不是要查询, 是要操作!各位看清楚没有啊?至少应该是update语句啊!
      

  10.   

    1\update tablename 
    set fieldname1 = fieldname1 - 40000
      

  11.   

    update tablename 
    set  fieldname2 = left(fieldname2,1) + cast( (cast(right(fieldname2,4) as int) - 4000) as varchar)
      

  12.   

    update tablename set fieldname1=fieldname1-40000,
    fieldname2=left(fieldname2,1)+cast(stuff(fieldname2,1,1,'')-40000 as varchar)
      

  13.   

    update tablename 
    set  fieldname2 = left(fieldname2,1) + cast( (cast(right(fieldname2,4) as int) - 4000) as varchar)