不知你使用SQL什么版本,我用2000测试如下:
假如A2长度为10,则A2中能保存5个汉字、10个英文字符或2汉字+6个英文字符(其它有多种组合,但汉字算两个字符,英文算一个,总长度不超过10个):
  len('0123456789')=10
  len('为人民服务')=5
  len('你好123456')=8
所以测试结果发现,len函数在计算长度时不论汉字或英文每个长度均为1,不知是否为BUG?否则自己做个函数,区分中英文分别计算!

解决方案 »

  1.   

    不好意思,没有把问题说清楚。我要问的是如何在SQL SERVER中正确的返回字符串的长度,
    字符串中既有中文,也有西文。
    我使用的是SQL SERVER 7.0实际上就是chump兄所说的问题。
      

  2.   

    不知你的问题是否已经解决,我有一个方法。
    汉字ASCII码为负数。
    你那里只需分别判断八个字符是否为负数再LEN()就可以了。
    但我的程序要判断上万个字符。
    不知你有否好方法赐教赐教?
      

  3.   

    我想到了,用 LEN 加 LENB 函数。
    LENB(STRING)-LEN(STRING) 得到真实的字节数。
    good luck to you
      

  4.   

    不好意思,前一段时间太忙,没时间上网。其实这个问题已经解决了,可以使用ms-sqlserver中的系统函数datalength()来实现。