怎么进行下面说明
1   第一个字符为字母
2   6位数字字符
3   前2个字符为大写字母
4   默认是系统日期 
    以上问题分别在查询分析器和企业管理器中怎么解决
  
  谢谢各位大侠

解决方案 »

  1.   

    建议这种业务逻辑在程序中使用正则表达式来实现。
    当然在数据库中也可以通过正则表达式的自定义函数来实现。
    http://topic.csdn.net/t/20050829/17/4238335.html
    /*   
              利用正则表达式替换字符   
              调用:   
        
              1.获取字符串中的英文字符   
              declare   @str   varchar(100)   
              set   @str='xyz123z5'   
              select   dbo.regexReplace(@str,'[^a-zA-Z]','',1,1)   
        
              2.获取字符串中的英文字符长度   
              declare   @str   varchar(100)   
              set   @str='xyz123z5'   
              select   len(dbo.regexReplace(@str,'[^a-zA-Z]','',1,1))   
                
      */   
      alter   function   dbo.regexReplace   
      (   
      @source   varchar(8000),         --原字符串   
      @regexp   varchar(1000),         --正则表达式   
      @replace   varchar(1000),       --替换值   
      @globalReplace   bit   =   0,       --是否是全局替换   
      @ignoreCase   bit   =   0               --是否忽略大小写   
      )   
      returnS   varchar(8000)   AS   
      begin   
      declare   @hr   integer   
      declare   @objRegExp   integer   
      declare   @result   varchar(5000)   
        
      exec   @hr   =   sp_OACreate   'VBScript.RegExp',   @objRegExp   OUTPUT   
      IF   @hr   <>   0   begin   
      exec   @hr   =   sp_OADestroy   @objRegExp   
      return   null   
      end   
      exec   @hr   =   sp_OASetProperty   @objRegExp,   'Pattern',   @regexp   
      IF   @hr   <>   0   begin   
      exec   @hr   =   sp_OADestroy   @objRegExp   
      return   null   
      end   
      exec   @hr   =   sp_OASetProperty   @objRegExp,   'Global',   @globalReplace   
      IF   @hr   <>   0   begin   
      exec   @hr   =   sp_OADestroy   @objRegExp   
      return   null   
      end   
      exec   @hr   =   sp_OASetProperty   @objRegExp,   'IgnoreCase',   @ignoreCase   
      IF   @hr   <>   0   begin   
      exec   @hr   =   sp_OADestroy   @objRegExp   
      return   null   
      end     
      exec   @hr   =   sp_OAMethod   @objRegExp,   'Replace',   @result   OUTPUT,   @source,   @replace   
      IF   @hr   <>   0   begin   
      exec   @hr   =   sp_OADestroy   @objRegExp   
      return   null   
      end   
      exec   @hr   =   sp_OADestroy   @objRegExp   
      IF   @hr   <>   0   begin   
      return   null   
      end   
        
      return   @result   
      end   
      GO